3. 位图信息头
BMP 位图信息头数据用于说明位图的尺寸等信息。其结构如下:
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本结构所占用字节数
LONG biWidth; // 位图的宽度,以像素为单位
LONG biHeight; // 位图的高度,以像素为单位
WORD biPlanes; // 目标设备的平面数不清,必须为 1
WORD biBitCount// 每个像素所需的位数,必须是 1(双色), 4(16 色),8(256
色)或 24(真彩色)之一
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),1(BI_RLE8 压缩
类型)或 2(BI_RLE4 压缩类型)之一
DWORD biSizeImage; // 位图的大小,以字节为单位
LONG biXPelsPerMeter; // 位图水平分辨率,每米像素数
LONG biYPelsPerMeter; // 位图垂直分辨率,每米像素数
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数
DWORD biClrImportant;// 位图显示过程中重要的颜色数
} BITMAPINFOHEADER;该结构占据 40 个字节。
注意:对于 BMP 文件格式,在处理单色图像和真彩色图像的时候,无论图象
数据多么庞大,都不对图象数据进行任何压缩处理,一般情况下,如果位图采用
压缩格式,那么 16 色图像采用 RLE4 压缩算法,256 色图像采用 RLE8 压缩算法。
4. 颜色表
颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个
RGBQUAD 类型的结构,定义一种颜色。RGBQUAD 结构的定义如下:
typedef struct tagRGBQUAD {
BYTErgbBlue;// 蓝色的亮度(值范围为 0-255)
BYTErgbGreen; // 绿色的亮度(值范围为 0-255)
BYTErgbRed; // 红色的亮度(值范围为 0-255)
BYTErgbReserved;// 保留,必须为 0
} RGBQUAD;
颜色表中 RGBQUAD 结构数据的个数由 BITMAPINFOHEADER 中的 biBitCount
项来确定,当 biBitCount=1,4,8 时,分别有 2,16,256 个颜色表项,当
biBitCount=24 时,图像为真彩色,图像中每个像素的颜色用三个字节表示,分
别对应 R、G、B 值,图像文件没有颜色表项。位图信息头和颜色表组成位图信息,
BITMAPINFO 结构定义如下:
typedef struct tagBITMAPINFO {
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
评论1
最新资源