BITMAP(6)                                               BITMAP(6)

          bitmap - external format for bitmaps

          #include <libg.h>

          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 w = 2^ld 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 val-
          ues take up an integral number of bytes.  Rows contain inte-
          gral 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 tex-
          tually, 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.

          tweak(1), graphics(2), bitblt(2), balloc(2), face(6),