Provided by: sam_4.3-18.1_i386 bug


       bitmap - external format for bitmaps


       #include <libc.h> #include <libg.h>


       Bitmaps are described in graphics(3g).  Fonts and bitmaps are stored in
       external files in machine-independent formats.

       Bitmap files are read and written using rdbitmapfile  and  wrbitmapfile
       (see balloc(3g)).  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 = l will appear as w = 2^l
       contiguous bits in a byte, with the pixel’s high order bit starting  at
       the  byte’s  bit  number  w*(x  mod  8/w), 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(3g) also deal
       with rows in this format, stored in user memory.

       Some small images, in particular 48×48 face files  and  16×16  cursors,
       are 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.)  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.


       graphics(3g), bitblt(3g), balloc(3g), font(5g)