A. Katz
ISI
September 1981
ISI
September 1981
FORMAT FOR BITMAP FILES
-
This note describes a proposed format for storing simple bitmaps (one bit per pixel) in a file. These files may be very large and the intent is to use this format for short term storage and passing data between closely coupled programs. The data in the file should be stored in 8-bit bytes (octets). Bitmaps may be any size. The first 4 octets of the file gives the width of each line (x direction), and the next 4 octets should give the number of lines of the display (length, y direction). After this is one octet for the x increment and one octet for the y increment. Following these 10 octets is the bitmap itself. The length and width fields are stored most significant octet first. The x and y increment octets tell how much space is between pixels. For an ordinary display, both these would be one. Each line of the display should be scanned from left to right. The lines should start at the top and work down. Each line in the bitmap should end on an octet boundary. If the width of the display is not divisable by 8, the rest of the last octet should be filled with zeros on the right. Below is a representation of a bitmap file (each square is one octet): ---------------------------------------------------------- | 1 | 2 | 3 | 4 | 5 | | width | width | width | width | length | ---------------------------------------------------------- ---------------------------------------------------------- | 6 | 7 | 8 | 9 | 10 | | length | length | length |x-increment|y-increment| ---------------------------------------------------------- ---------------------------------------------------------- | 11 | 12 | 13 | 14 | 15 | data | data | data | data | data... ---------------------------------------------------------- For example, bitmaps from the RAPICOM 450 can be in Fine Detail, Quality, or Express Mode. In Fine Detail mode the x-increment and y-increment would be 1, for Quality mode, the x-increment would be 1 and the y-increment would be 2, and for Express mode, the x-increment would be 1 and the y-increment would be 3. For these bitmaps it is intended that each scan line be repeated y-increment times when they are displayed.