123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /* $Id$ */
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- gd_bmp.c
- Bitmap format support for libgd
- * Written 2007, Scott MacVicar
- ---------------------------------------------------------------------------
- Todo:
- RLE4, RLE8 and Bitfield encoding
- Add full support for Windows v4 and Windows v5 header formats
- ----------------------------------------------------------------------------
- */
- #ifndef BMP_H
- #define BMP_H 1
- #define BMP_PALETTE_3 1
- #define BMP_PALETTE_4 2
- #define BMP_WINDOWS_V3 40
- #define BMP_OS2_V1 12
- #define BMP_OS2_V2 64
- #define BMP_WINDOWS_V4 108
- #define BMP_WINDOWS_V5 124
- #define BMP_BI_RGB 0
- #define BMP_BI_RLE8 1
- #define BMP_BI_RLE4 2
- #define BMP_BI_BITFIELDS 3
- #define BMP_BI_JPEG 4
- #define BMP_BI_PNG 5
- #define BMP_RLE_COMMAND 0
- #define BMP_RLE_ENDOFLINE 0
- #define BMP_RLE_ENDOFBITMAP 1
- #define BMP_RLE_DELTA 2
- #define BMP_RLE_TYPE_RAW 0
- #define BMP_RLE_TYPE_RLE 1
- /* BMP header. */
- typedef struct {
- /* 16 bit - header identifying the type */
- signed short int magic;
- /* 32bit - size of the file */
- int size;
- /* 16bit - these two are in the spec but "reserved" */
- signed short int reserved1;
- signed short int reserved2;
- /* 32 bit - offset of the bitmap header from data in bytes */
- signed int off;
- } bmp_hdr_t;
- /* BMP info. */
- typedef struct {
- /* 16bit - Type, ie Windows or OS/2 for the palette info */
- signed short int type;
- /* 32bit - The length of the bitmap information header in bytes. */
- signed int len;
- /* 32bit - The width of the bitmap in pixels. */
- signed int width;
- /* 32bit - The height of the bitmap in pixels. */
- signed int height;
- /* 8 bit - The bitmap data is specified in top-down order. */
- signed char topdown;
- /* 16 bit - The number of planes. This must be set to a value of one. */
- signed short int numplanes;
- /* 16 bit - The number of bits per pixel. */
- signed short int depth;
- /* 32bit - The type of compression used. */
- signed int enctype;
- /* 32bit - The size of the image in bytes. */
- signed int size;
- /* 32bit - The horizontal resolution in pixels/metre. */
- signed int hres;
- /* 32bit - The vertical resolution in pixels/metre. */
- signed int vres;
- /* 32bit - The number of color indices used by the bitmap. */
- signed int numcolors;
- /* 32bit - The number of color indices important for displaying the bitmap. */
- signed int mincolors;
- } bmp_info_t;
- #endif
- #ifdef __cplusplus
- }
- #endif
|