bitmap − external format for bitmaps #include <libc.h> #include <libg.h> Bitmaps are described in Fonts and bitmaps are stored in external files in machine‐independent formats. Bitmap files are read and written using rdbitmapfile and wrbitmapfile (see A bitmap file starts with 5 decimal strings: and Each number is right‐justified and blank padded in 11 characters, followed by a blank. The rest of the file contains the 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 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.