Bmp{
//文件头的偏移量表示,以字节为单位
FileHeader{
位图文件的类型,必须为BM(1-2字节)
位图文件的大小,以字节为单位(3-6字节,低位在前)
位图文件保留字,必须为0(7-8字节)
位图文件保留字,必须为0(9-10字节)
位图数据的起始位置,以相对于位图(11-14字节,低位在前) 通过该字节确定图像数据阵列起点
}
//本结构所占用字节数(15-18字节)
BmpHeader{
位图的宽度,以像素为单位(19-22字节)
位图的高度,以像素为单位(23-26字节)
目标设备的级别,必须为1(27-28字节)
每个像素所需的位数,必须是1(双色),(29-30字节)4(16色),8(256色)16(高彩色) 24(真彩色)32之一
位图压缩类型,必须是0(不压缩),(31-34字节)1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
位图的大小(其中包含了为了补齐行数是4的倍数而添加的空字节),以字节为单位(35-38字节)
位图水平分辨率,每米像素数(39-42字节)
位图垂直分辨率,每米像素数(43-46字节)
位图实际使用的颜色表中的颜色数(47-50字节)
位图显示过程中重要的颜色数(51-54字节)
}
//调色板 根据位图数据的起始位置判断是否有调色板 调色板以4字节为单位,每4个字节存放一颜色,图像数据阵列是调色板的索引 调色板有:
1色(黑白01 1位)、16色(半字节)、256色(1字节)像素位数16 、24、32一般没有调色板 (有待再续)
RGBQUAD {
rgbBlue;// 蓝色的亮度 ( 值范围为 0-255)
rgbGreen; // 绿色的亮度 ( 值范围为 0-255)
rgbRed; // 红色的亮度 ( 值范围为 0-255)
rgbReserved;// 保留,必须为 0
}
//图像数据阵列
Body{
int skip=4-width*bitCount%4;//得到每行要跳过的数字(与windows 系统机制有关,windows规定一个扫描行所占的字节数必须是4的倍数
}