BMP位图是比较简单的图像文件格式,可以用几个数据结构来描述。
1 .typedef struct tagBITMAPFILEHEADER {//位图文件头
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;//数据开始的偏移量
} BITMAPFILEHEADER;
2. typedef struct tagBITMAPINFOHEADER{//位图信息头
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
3. typedef struct tagRGBQUAD {//调色板
BYTE rgbBlue; //该颜色的蓝色分量
BYTE rgbGreen; //该颜色的绿色分量
BYTE rgbRed; //该颜色的红色分量
BYTE rgbReserved; //保留值
} RGBQUAD;
4.位图数据
a.按照从下到上,从左到右方向扫描数据,显示的时候要注意调整好顺序。
b.每一行数据按照4字节对齐。如果没有注意,会导致显示的图片错误。
normalizedWidth=WIDTHBYTES(bmiHeader.biWidth*bmiHeader.biBitCount);//使用宏来获取归一化的行宽度