[search]
[index]
NAME
-
bitmap - external format for bitmaps
SYNOPSIS
-
#include <libg.h>
DESCRIPTION
-
Bitmaps are described in
graphics(2).
Fonts and bitmaps are stored in external files
in machine-independent formats.
Bitmap files are read and written using
rdbitmapfile
and
wrbitmapfile
(see
balloc(2)).
A bitmap file starts with 5
decimal strings:
ldepth,
r.min.x,
r.min.y,
r.max.x,
and
r.max.y.
Each number is right-justified and blank padded in 11 characters, followed by a blank.
The rest of the file contains the
r.max.y-r.min.y
rows of bitmap data.
A
row
consists of the byte containing pixel
r.min.x
and all the bytes up to and including the byte containing pixel
r.max.x-1.
A pixel with x-coordinate =
x
in a bitmap with
ldepth
=
ld
will appear as
contiguous bits in a byte, with the pixel's high order bit
starting at the byte's bit number
where bits within a byte are numbered 0 to 7 from the
high order to the low order bit.
If
w
is greater than 8, it is a multiple of 8, so
pixel values take up an integral number of bytes.
Rows contain integral number of bytes, so there may be some unused
pixels at either end of a row.
The
rdbitmap
and
wrbitmap
functions described in
balloc(2)
also deal with rows in this format, stored in user memory.
Some small images, in particular 48×48 face files
as used by
seemail
(see
mail(1))
and 16×16
cursors, can be stored textually, suitable for inclusion in C source.
Each line of text represents one scan line as a
comma-separated sequence of hexadecimal
bytes, shorts, or words in C format.
For cursors, each line defines a pair of bytes.
(It takes two images to define a cursor; each must be stored separately
to be processed by programs such as
tweak(1).)
Face files of one bit per pixel are stored as a sequence of shorts,
those of larger pixel sizes as a sequence of longs.
Software that reads these files must deduce the image size from
the input; there is no header.
These formats reflect history rather than design.
SEE ALSO
-
tweak(1),
graphics(2),
bitblt(2),
balloc(2),
face(6),
font(6)
Copyright © 1995 Lucent Technologies. All rights reserved.