Blame src/bmp.h

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