struct bitmap_header //文件头 14个字节
{
u_int16_t bfType; // 文件类型,必须为BM
u_int32_t bfSize; // 位图文件大小
u_int16_t bfReserved1; // 预留位
u_int16_t bfReserved2;
u_int32_t bfOffBits; // bmp图像文件头数据偏移量
}attribute((packed)); // 忽略该结构体地址对齐
struct bitmap_info // 像素头 40个字节
{
u_int32_t biSize; // 本结构大小
u_int32_t biWidth; // 像素点宽度
u_int32_t biHeight; // 像素点高度
u_int16_t biPlanes; // 目标设备的级别,必须为1
u_int16_t biBitCount; // 色深每个像素点所占的位数24bit
u_int32_t biCompression; // 是否压缩,0表示不压缩
u_int32_t biSizeImage; // bmp数据大小,必须是4的整数倍
u_int32_t biXPelsPerMeter; // 位图水平分辨率
u_int32_t biYPelsPerMeter; // 位图垂直分辨率
u_int32_t biClrUsed; // 位图实际使用的颜色表中的颜色数
u_int32_t biClrImportant; // 位图显示过程中重要的颜色数
}attribute((packed));