/******************************************************************************* * bmpdefs.h * Microsoft Windows bitmap (BMP) file definitions. * * Acknowledgements * Derived from source code written by David R. Tribble, Jan 1992. * * Copyright ©1992,2008 by David R. Tribble, all rights reserved. * Permission is granted to any person or entity except those designated * by the United States Department of State as a terrorist, or terrorist * government or agency, to use and distribute this source code provided * that the original copyright notice remains present and unaltered. */ #ifndef drt_bmpdefs_h #define drt_bmpdefs_h 104 /* Identification */ #ifndef NO_H_IDENT static char drt_bmpdefs_h_id[] = "@(#)drt/bmp/bmpdefs.h $Revision: 1.4 $$Date: 2008/05/18 21:45:11 $"; #endif /* System includes */ #ifndef sys_stdint_h #include #define sys_stdint_h 1 #endif #ifdef _WIN32 #pragma warning(disable:4103) // For #pragma pack(n) #endif /* Local definitions */ #ifdef __cplusplus extern "C" { #endif /******************************************************************************* * Microsoft Windows bitmap (BMP) file format * * Uncompressed 256-color BMP * * 00000 42 4D magic, `BM' \ * 00002 36 B4 04 00 file size, 0x04B436 308278 | * 00006 00 00 00 00 (reserved) | * 0000A 36 04 00 00 header + color map size, 1078 | * | * 0000E 28 00 00 00 this subheader size, 40 | * 00012 80 02 00 00 image width, 640 pixels | * 00016 E0 01 00 00 image depth, 480 pixels | * 0001A 01 00 number of bit planes, 1 | * 0001C 08 00 bits per pixel, 8 (256 colors) | * 0001E 00 00 00 00 compression type, 0 (none) | * 00022 00 00 00 00 image size, bytes (or zero) | * 00026 00 00 00 00 X pels per meter, 0 | * 0002A 00 00 00 00 Y pels per meter, 0 | * 0002E 00 00 00 00 colors used (or zero) | * 00032 00 00 00 00 important colors (or zero) / * * 00036 21 21 21 00 RGB for color 00 (b,g,r,a) \ * 0003A F2 21 21 00 RGB for color 01 | * 0003E 21 F2 21 00 RGB for color 02 +- RGB map * : : : : | * 00432 F2 F3 F2 00 RGB for color FF / * * 00436 08 08 08 08 pixel data bytes (one byte per pixel) * : : : (left to right, bottom to top) * 006B6 00 : (end of line padding, even byte) * : : : * 4B430 08 08 08 08 : * 4B434 08 08 : * 4B436 end of file * * 0000.0000 42 4D 36 04 00 00 00 00 00 00 36 04 00 00 28 00 * 0000.0010 00 00 80 02 00 00 E0 01 00 00 01 00 08 00 00 00 * 0000.0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0000.0030 00 00 00 00 00 00|21 21 21 00 F2 21 21 00 21 F2 * 0000.0040 21 00 F2 F2 21 00 21 21 F2 00 F2 21 F2 00 21 80 * 0000.0050 F2 00 F2 F2 F2 00 80 80 80 00 F2 80 80 00 80 F2 * 0000.0060 80 00 F2 F2 80 00 80 80 F2 00 F2 80 F2 00 80 F2 * 0000.0070 F2 00 F2 F2 F2 00 21 21 21 00 2E 21 29 00 44 21 * 0000.0080 21 00 55 21 21 00 4E 21 2E 00 4E 44 21 00 55 21 * : * : * 0000.0400 F1 00 DC EA F1 00 D4 F2 F1 00 F2 F2 F1 00 EA F2 * 0000.0410 F1 00 EA F2 F1 00 DC F2 F1 00 F2 F2 F1 00 EA F2 * 0000.0420 F1 00 F2 F1 F1 00 F2 F1 F2 00 F1 F2 F1 00 F2 F2 * 0000.0430 F2 00 F2 F3 F2 00|08 08 08 08 08 08 08 08 08 08 * 0000.0440 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 * : * : * 0000.06B0 08 08 08 08 08 08|08 08 08 08 08 08 08 08 08 08 * 0000.06C0 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 * : * : * 0004.B400 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 * 0004.B410 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 * 0004.B420 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 * 0004.B430 08 08 08 08 08 08| */ /******************************************************************************* * Compressed 256-color BMP * * 00000 42 4D magic, `BM' \ * 00002 D7 DF 01 00 file size, 0x01DFD7 122839 | * 00006 00 00 00 00 (reserved) | * 0000A 36 04 00 00 header + color map size, 1078 | * | * 0000E 28 00 00 00 this subheader size, 40 | * 00012 80 02 00 00 image width, 640 pixels | * 00016 E0 01 00 00 image depth, 480 pixels | * 0001A 01 00 number of bit planes, 1 | * 0001C 08 00 bits per pixel, 8 (256 colors) | * 0001E 01 00 00 00 compression type, 1 (RLE) | * 00022 00 00 00 00 image size, bytes (or zero) | * 00026 00 00 00 00 X pels per meter, 0 | * 0002A 00 00 00 00 Y pels per meter, 0 | * 0002E 00 00 00 00 colors used (or zero) | * 00032 00 00 00 00 important colors (or zero) / * * 00036 21 21 21 00 RGB for color 00 (b,g,r,a) \ * 0003A F2 21 21 00 RGB for color 01 | * 0003E 21 F2 21 00 RGB for color 02 +- RGB map * : : : | * 00432 F2 F3 F2 00 RGB for color FF / * * 00436 FF 08 RLE pixel data * 00438 FF 08 : (left to right, bottom to top) * : : : * 1DFCF FF 08 : (count + value) * 1DFD1 82 08 : (count + value) * 1DFD3 00 00 : (end of line padding) * 1DFD5 00 01 : (end of file padding?) * 1DFD7 end of file * * 0000.0000 42 4D D7 DF 01 00 00 00 00 00 36 04 00 00 28 00 * 0000.0010 00 00 80 02 00 00 E0 01 00 00 01 00 08 00 01 00 * 0000.0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0000.0030 00 00 00 00 00 00|21 21 21 00 F2 21 21 00 21 F2 * 0000.0040 21 00 F2 F2 21 00 21 21 F2 00 F2 21 F2 00 21 80 * : * : * 0000.0400 F1 00 DC EA F1 00 D4 F2 F1 00 F2 F2 F1 00 EA F2 * 0000.0410 F1 00 EA F2 F1 00 DC F2 F1 00 F2 F2 F1 00 EA F2 * 0000.0420 F1 00 F2 F1 F1 00 F2 F1 F2 00 F1 F2 F1 00 F2 F2 * 0000.0430 F2 00 F2 F2 F2 00 FF 08 FF 08 82 08 00 00 FF 08 * 0000.0440 FF 08 82 08 00 00|FF 08 FF 08 82 08 00 00 FF 08 * 0000.0450 FF 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 * 0000.0460 FF 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 * 0000.0470 FF 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 ÿ * 0000.0480 FF 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 * : * : * 0001.DE80 58 5A 4F 64 00 05 64 58 58 4A 4D 03 4D 00 0E 4B * 0001.DE90 60 67 41 4D 5B 63 5B 67 5A 4F 58 67 59 00 15 59 * 0001.DEA0 4A 51 68 60 4C 64 4B 64 5A 5B 4D 4A 4F 4A 58 4A * 0001.DEB0 67 5A 19 00 02 00 00 03 FF 08 08 D4 08 00 00 BA * 0001.DEC0 08 00 03 FF 00 00 EC 00 00 03 FF 08 08 D4 08 00 * 0001.DED0 00 BA 08 00 03 FF 00 00 EC 00 00 03 FF 08 08 D4 * 0001.DEE0 08 00 00 BA 08 00 03 FF 00 00 EC 00 00 03 FF 08 * 0001.DEF0 08 D4 08 00 00 BA 08 F0 FF D6 08 00 00 FF 08 FF * 0001.DF00 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF10 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF20 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF30 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF40 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF50 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF60 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF70 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF80 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DF90 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DFA0 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DFB0 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DFC0 08 82 08 00 00 FF 08 FF 08 82 08 00 00 FF 08 FF * 0001.DFD0 08 82 08 00 00 00 01| */ /******************************************************************************* * Uncompressed 16-color BMP * * 00000 42 4D id `BM' \ * 00002 66 01 00 00 filesize 358 | * 00006 00 00 00 00 reserved | * 0000A 76 00 00 00 headersize 118 | * | * 0000E 28 00 00 00 infoSize 40 | * 00012 17 00 00 00 width 23 | * 00016 14 00 00 00 depth 20 | * 0001A 01 00 biPlanes 1 +- header * 0001C 04 00 bits 4, 16 colors | * 0001E 00 00 00 00 biCompression 0 | * 00022 00 00 00 00 biSizeImage 0 | * 00026 00 00 00 00 biXPelsPerMeter 0, 0 dpi | * 0002A 00 00 00 00 biYPelsPerMeter 0, 0 dpi | * 0002E 00 00 00 00 biClrUsed 0 | * 00032 00 00 00 00 biClrImportant 0 / * * 00036 00 00 00 00 RGB for color 0 (b,g,r,a) \ * 0003A 00 00 00 00 RGB for color 1 | * 0003E 00 00 00 00 RGB for color 2 | * 00042 00 00 00 00 RGB for color 3 | * 00046 00 00 00 00 RGB for color 4 | * 0004A 00 00 00 00 RGB for color 5 | * 0004E 00 00 00 00 RGB for color 6 | * 00052 00 00 00 00 RGB for color 7 | * 00056 00 00 00 00 RGB for color 8 +- RBG map * 0005A 00 00 00 00 RGB for color 9 | * 0005E 00 00 00 00 RGB for color A | * 00062 00 00 00 00 RGB for color B | * 00066 00 00 00 00 RGB for color C | * 0006A 00 00 00 00 RGB for color D | * 0006E 00 00 00 00 RGB for color E | * 00072 FF FF FF 00 RGB for color F / * * 00076 FF FF FF FF pixel data, line 19 \ * FF FF FF FF | * FF FF FF 00 plus padding bytes | * 00082 FF FF FF FF pixel data, line 18 | * FF FF FF FF +- pixels * FF FF FF 00 plus padding bytes | * : : : | * 0015A FF FF FF FF pixel data, line 0 | * FF FF FF FF | * FF FF FF 00 plus padding bytes / * 00166 * * * 00000|42 4D 66 01 00 00 00 00 00 00 76 00 00 00 28 00 * 00010 00 00 17 00 00 00 14 00 00 00 01 00 04 00 00 00 * 00020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 00030 00 00 00 00 00 00|00 00 00 00,00 00 00 00,00 00 * 00040 00 00,00 00 00 00,00 00 00 00,00 00 00 00,00 00 * 00050 00 00,00 00 00 00,00 00 00 00,00 00 00 00,00 00 * 00060 00 00,00 00 00 00,00 00 00 00,00 00 00 00,00 00 * 00070 00 00,FF FF FF 00|FF FF FF FF FF FF FF FF FF FF * 00080 FF F0,FF FF FF FF FF FF FF FF FF FF FF F0,FF FF * 00090 FF FF FF FF FF FF FF FF FF F0,FF FF FF FF FF FF * 000A0 FF FF FF FF FF F0,FF FF FF FF FF FF FF FF FF FF * 000B0 FF F0,FF FF FF FF FF FF FF FF FF FF FF F0,FF FF * 000C0 FF FF FF FF FF FF FF FF FF F0,FF FF FF FF FF FF * 000D0 FF FF FF FF FF F0,FF FF FF FF FF FF FF FF FF FF * 000E0 FF F0,FF FF FF FF FF FF FF FF FF FF FF F0,FF FF * 000F0 FF FF FF FF FF FF FF FF FF F0,FF FF FF FF FF FF * 00100 FF FF FF FF FF F0,FF FF FF FF FF FF FF FF FF FF * 00110 FF F0,FF FF FF FF FF FF FF FF FF FF FF F0,FF FF * 00120 FF FF FF FF FF FF FF FF FF F0,FF FF FF FF FF FF * 00130 FF FF FF FF FF F0,FF FF FF FF FF FF FF FF FF FF * 00140 FF F0,FF FF FF FF FF FF FF FF FF FF FF F0,FF FF * 00150 FF FF FF FF FF FF FF FF FF F0,FF FF FF FF FF FF * 00160 FF FF FF FF FF F0| */ /******************************************************************************* * Uncompressed 2-color BMP * * 00000 42 4D magic, `BM' \ * 00002 3E 18 00 00 file size, 0x00183E 6206 | * 00006 00 00 00 00 (reserved) | * 0000A 3E 00 00 00 header + color map size, 62 | * | * 0000E 28 00 00 00 this subheader size, 40 | * 00012 C0 00 00 00 image width, 192 pixels | * 00016 00 01 00 00 image depth, 256 pixels | * 0001A 01 00 number of bit planes, 1 +- header * 0001C 01 00 bits per pixel, 1 (2 colors) | * | * 0001E 00 00 00 00 compression type, 0 (none) | * 00022 00 00 00 00 image size, bytes (or zero) | * 00026 61 0F 00 00 X pels per meter, 3937 | * 0002A 61 0F 00 00 Y pels per meter, 3937 | * 0002E 00 00 00 00 colors used (or zero) | * 00032 00 00 00 00 important colors (or zero) / * * 00036 00 00 00 00 RGB for color 00 (b,g,r,a) \ * 0003A FF FF FF 00 RGB for color 01 /-- RGB map * * 0003E 28 90 25 AF pixel data bytes (8 pixels per byte) * : : : (left to right, bottom to top) * 00056 55 55 55 54 : * : : : * 0006E 91 46 1A 55 : * : : : * 0183A 82 04 0A 45 : * 0183E end of file * * 0000.0000 42 4D 3E 18 00 00 00 00 00 00 3E 00 00 00 28 00 * 0000.0010 00 00 C0 00 00 00 00 01 00 00 01 00 01 00 00 00 * 0000.0020 00 00 00 00 00 00 61 0F 00 00 61 0F 00 00 00 00 * 0000.0030 00 00 00 00 00 00|00 00 00 00 FF FF FF 00|28 90 * 0000.0040 25 AF 3D 59 0A 98 0A 92 34 F5 7D 80 00 62 28 89 * 0000.0050 75 5C AD 40 14 00|55 55 54 00 80 A2 54 A7 58 16 * 0000.0060 00 33 A5 60 02 90 2F 30 8E A5 EB 02 01 18|91 46 * 0000.0070 1A 55 24 85 4A 48 62 21 00 AF 5D 50 00 0D 06 85 * 0000.0080 35 10 3C 85 12 05 72 8C 65 54 CA 78 92 A6 91 A9 * 0000.0090 80 B5 EB 48 00 E0 01 AA E8 09 E9 20 83 42 09 92 * 0000.00A0 89 95 21 85 68 34 13 80 01 A6 57 3A 02 50 25 41 * 0000.00B0 45 04 63 01 44 90 62 58 28 29 53 1A 15 85 CF 00 * 0000.00C0 03 0E BE F4 00 00 01 B1 B6 69 90 80 91 49 55 22 * 0000.00D0 AD 48 AE E0 B3 22 2A 00 00 50 C9 53 00 4A 01 44 * 0000.00E0 4A 91 2F 90 82 A8 49 CA 91 51 20 05 04 54 92 00 * 0000.00F0 00 19 2C A4 80 00 02 94 F0 65 6A 8F 28 51 52 11 * 0000.0100 24 96 9A 9A 69 4A A5 D0 00 04 A9 55 00 02 40 C6 * : * : * 0000.1800 A4 49 81 42 8A 0A 45 22 85 4B 94 8A 82 AD 58 94 * 0000.1810 00 C5 B9 56 4E 59 26 57 48 92 28 B5 22 C8 92 CA * 0000.1820 39 90 5A F3 D5 50 42 49 55 14 02 48 90 82 50 90 * 0000.1830 15 24 95 44 54 95 54 94 A2 2A 82 04 0A 45| */ /******************************************************************************* * Uncompressed 24-bit color BMP * * 00000 42 4D id `BM' * 00002 EB 02 00 00 filesize 747 * 00006 00 00 00 00 r 00 00 00 00 * 0000A 36 00 00 00 headersize 54 * * 0000E 28 00 00 00 infosize 40 \ * 00012 17 00 00 00 width 23 | * 00016 14 00 00 00 depth 20 | * 0001A 01 00 biplanes 1 | * 0001C 18 00 bits 24 | * | * 0001E 00 00 00 00 compression 0=none +- info * 00022 A0 05 00 00 sizeimage 1440 | * 00026 61 0F 00 00 Xpels 3937 | * 0002A 61 0F 00 00 Ypels 3937 | * 0002E 00 00 00 00 clrused 0 | * 00032 00 00 00 00 clrimportant 0 / * * (no color map) * * 00036 line 19, RGB pixel data (b,g,r) * FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FE FF FF FF FF FF FF FF FF FF FE FF FF FE * FF FE FF FF FE FF FF FF FF FF FD FF FF FE FE * FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FF FF FF FF FF FF FF FF * 00 14 01 * 0007E line 18 * FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FF FF FF FF FF FF FF FF * 00 14 01 * 000C6 line 17 * : * : * 0058E line 0 * FF FE FF FF FF FF FF FE FF FE FE FF FF FF FF * FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FE FF FF FE FF FF FF FF FF FF FF FF FF FF * FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF * FF FF FF FF FF FF FF FF FF * 00 14 01 * 005D6 */ /******************************************************************************* * Uncompressed OS/2 4-bit color BMP * * 00000 42 4D id `BM' * 00002 B2 06 00 00 filesize 1714 * 00006 00 00 00 00 r 00 00 00 00 * 0000A 4A 00 00 00 headersize 74 (incl map) * * 0000E 0C 00 00 00 infosize 12 \ * 00012 50 00 width 80 | * 00014 29 00 depth 41 +- info * 00016 01 00 biplanes 1 | * 00018 04 00 bits 4 / * * 0001A 00 00 00 RGB for color 0, (b,g,r)? \ * 0001D 00 00 BF : | * 00020 00 BF 00 : | * 00023 00 BF BF : | * 00026 BF 00 00 : | * 00029 BF 00 BF : | * 0002C BF BF 00 : | * 0002F C0 C0 C0 : +- RGB map * 00032 80 80 80 : | * 00035 00 00 FF : | * 00038 00 FF 00 : | * 0003B 00 FF FF : | * 0003E FF 00 00 : | * 00041 FF 00 FF : | * 00044 FF FF 00 : | * 00047 FF FF FF RGB for color F / * * 0004A FF FF FF FF pixel data, two per byte, 1640 bytes * : : * : : * 006AE FF FF FF FF * 006B2 * * 0000.0000 42 4D,B2 06 00 00,00 00 00 00,4A 00 00 00,0C 00 * 0000.0010 00 00,50 00,29 00,01 00, 04 00|00 00 00 00,00 BF * 0000.0020 00 BF,00 00 BF BF,BF 00 00 BF,00 BF BF BF,00 C0 * 0000.0030 C0 C0,80 80 80 00,00 FF 00 FF,00 00 FF FF,FF 00 * 0000.0040 00 FF 00 FF FF FF 00 FF FF FF|FF FF FF FF FF FF * 0000.0050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF * : * : * 0000.0670 00 00 00 0F 0F FF FF FF FF F8 0F FF FF FF FF FF * 0000.0680 FF FF FF FF FF FF FF FF FF F0 FF FF FF FF FF FF * 0000.0690 FF FF FF FF FF FF FF 87 F0 00 07 0F 0F FF FF FF * 0000.06A0 FF F8 0F FF FF FF FF FF FF FF FF FF FF FF FF FF * 0000.06B0 FF FF .. .. .. .. .. .. .. .. .. .. .. .. .. .. */ /******************************************************************************* * struct bmp_header_pfx * Bitmap (BMP) common file header prefix. * This substructure is common to (shared by) both the Win32 and OS2 BMP * file formats. */ #define BMP_HEADER_PFX_VS 1 #ifdef _WIN32 #pragma pack(1) #endif struct bmp_header_pfx { uint16_t id; /* Magic number, BMP_HDR_MAGIC */ uint32_t filesize; /* File length */ uint8_t r[4]; /* (Reserved, zeros) */ uint32_t headersize; /* Header size, incl palette */ uint32_t infoSize; /* Subheader size */ }; /******************************************************************************* * struct os2_bmp_header * OS/2 bitmap (BMP) file header. */ #define OS2_BMP_HEADER_VS 1 #ifdef _WIN32 #pragma pack(1) #endif struct os2_bmp_header { uint16_t id; /* Magic number, BMP_HDR_MAGIC */ uint32_t filesize; /* File length */ uint8_t r[4]; /* (Reserved, zeros) */ uint32_t headersize; /* Header size, incl palette */ uint32_t infoSize; /* Subheader size (12) */ uint16_t width; /* Image width, pixels */ uint16_t depth; /* Image height, pixels */ uint16_t biPlanes; /* Number of bit planes */ uint16_t bits; /* Bits per pixel */ }; /******************************************************************************* * struct bmp_header * Bitmap (BMP) file header. */ #define BMP_HEADER_VS 1 #ifdef _WIN32 #pragma pack(1) #endif struct bmp_header { uint16_t id; /* Magic number, BMP_HDR_MAGIC */ uint32_t filesize; /* File length */ uint8_t r[4]; /* (Reserved, zeros) */ uint32_t headersize; /* Header size, incl palette */ uint32_t infoSize; /* Subheader size (40) */ uint32_t width; /* Image width, pixels */ uint32_t depth; /* Image height, pixels */ uint16_t biPlanes; /* Number of bit planes */ uint16_t bits; /* Bits per pixel */ uint32_t biCompression; /* Compression type */ uint32_t biSizeImage; /* Image size, bytes (or zero) */ uint32_t biXPelsPerMeter;/* Horiz image resolution */ uint32_t biYPelsPerMeter;/* Vert image resolution */ uint32_t biClrUsed; /* Colors used (or zero) */ uint32_t biClrImportant; /* Important colors (or zero) */ }; #define BMP_HDR_MAGIC 0x4D42 /* File header magic number */ #define BMP_CMP_NONE 0L /* No compression */ #define BMP_CMP_RLE8 1L /* 8-bit run-length encoding */ #define BMP_CMP_RLE4 2L /* 4-bit run-length encoding */ /******************************************************************************* * struct bmp_rgb * BMP palette entry (32 bits). */ #ifdef _WIN32 #pragma pack(1) #endif struct bmp_rgb { uint8_t b; /* Blue value */ uint8_t g; /* Green value */ uint8_t r; /* Red value */ uint8_t a; /* Alpha value */ }; /******************************************************************************* * struct os2_bmp_rgb * OS/2 BMP palette entry (24 bits). */ #ifdef _WIN32 #pragma pack(1) #endif struct os2_bmp_rgb { uint8_t b; /* Blue value */ uint8_t g; /* Green value */ uint8_t r; /* Red value */ }; /******************************************************************************* * struct bmp_rgbpix * BMP pixel (24 bit). */ #ifdef _WIN32 #pragma pack(1) #endif struct bmp_rgbpix { uint8_t b; /* Blue component */ uint8_t g; /* Green component */ uint8_t r; /* Red component */ }; #ifdef __cplusplus } #endif #endif /* drt_bmpdefs_h */ /* End bmpdefs.h */