- BITMAPFILEHEADER
#pragma pack(2)
struct tagBITMAPFILEHEADER{
/*定义为'BM',标识bmp文件*/
WORD bfType;
/*整个BMP文件的大小*/
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
/*偏移数,即 位图文件头+位图信息头+调色板 的大小*/
DWORD bfOffBits;
};
#pragma pack()
- BITMAPINFOHEADER
struct tagBITMAPINFOHEADER{
/*位图信息头的大小,为40*/
DWORD biSize;
/*位图的宽度,单位是像素(像素结构体为tagRGBTRIPLE)*/
LONG biWidth;
/*位图的高度,单位是像素(像素结构体为tagRGBTRIPLE)*/
LONG biHeight;
/*目标设备的级别,必须为1(2字节)*/
WORD biPlanes;
/*每个像素的位数1-黑白图,4-16色,8-256色,24-真彩色*/
/*应该是根据这个选择后面的像素结构体*/
WORD biBitCount;
/*压缩方式,BI_RGB(0)为不压缩*/
DWORD biCompression;
/*位图全部像素占用的字节数(所有像素结构体总和),BI_RGB时可设为0*/
DWORD biSizeImage;
/*水平分辨率(像素/米) 0即可*/
LONG biXPelsPerMeter;
/*垂直分辨率(像素/米) 0即可*/
LONG biYPelsPerMeter;
/*位图使用的颜色数,如果为0,则颜色数为2的biBitCount次方。0即可*/
DWORD biClrUsed;
/*重要的颜色数,0代表所有颜色都重要。0即可*/
DWORD biClrImportant;
};
24bit像素结构体:
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue;
BYTE rgbtGreen;
BYTE rgbtRed;
} RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE;