BITMAP(6)                                               BITMAP(6)

     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 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 48x48 face files as used by
          seemail (see mail(1)) and 16x16 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.

     SEE ALSO
          tweak(1), graphics(2), bitblt(2), balloc(2), face(6),
          font(6)

     Page 1                       Plan 9             (printed 3/29/24)