BMP 图像文件由四部分组成:BMP 文件头、位图信息头、调色板、位图数据
一、bmp 文件头(大小固定为14字节)
typedef struct tagBITMAPFILEHEADER
{
UINT16 bfType; --说明 bmp 文件的类型。
DWORD bfSize; --说明该文件的大小,以字节为单位。
UINT16 bfReserved1; --保留字段,必须设置为 0。
UINT16 bfReserved2; --保留字段,必须设置为 0。
DWORD bfOffBits; --说明从文件起始位置到图像数据之间的字节偏移量。
} BITMAPFILEHEADER;
二、位图信息头
typedef struct tagBITMAPINFOHEADER {
DWORD biSize; --位图信息头大小。
LONG biWidth; --图像的宽度,以像素为单位。
LONG biHeight; --图像的高度,以像素为单位。同时用来指明该图是倒向位图还是正向位图,如果该值为正数,说明是倒向位图;反之为正向位图。
WORD biPlanes; --色彩平面数,该值总被设置为 1。
WORD biBitCount; --像素深度,指明一个像素点需要多少个 bit 数据来描述
DWORD biCompression; --说明图像数据的压缩类型
DWORD biSizeImage; --说明图像的大小,以字节为单位
LONG biXPelsPerMeter; --水平分辨率,用像素/米来表示
LONG biYPelsPerMeter; --垂直分辨率,用像素/米来表示
DWORD biClrUsed; --说明位图实际使用的彩色表中的颜色索引数。
DWORD biClrImportant; --说明对图像显示有重要影响的颜色索引的数目,为0则表示都重要
} BITMAPINFOHEADER;