版本比较
比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
BMP
参考:
- 位图结构 - Win32 apps | Microsoft Learn
- 位图存储 - Win32 apps | Microsoft Learn
- BMP - 维基百科,自由的百科全书
- BMP file format - Wikipedia
- Structure of BMP file
- BMP文件格式详解(BMP file format) - 姚伟峰 - 博客园
文件头,固定14字节,最后4字节表示图像数据的起始位置。
代码块 |
---|
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; |
位图信息头,根据头4字节大小来确定用了哪种版本的位图信息头,一般是40,表示使用Windows V3版本的信息头。
代码块 |
---|
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, *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; |
调色板,可选,其实是一个结构体数组,每个结构体占4字节,表示调色板中的一种颜色,当每个像素的深度大于24bit时,不需要调色板,如下:
代码块 |
---|
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD; |
位图数据,存储像素内容,排布规则是从左下到右上,24位RGB按照BGR的顺序来存储,32位RGBA按BGRA顺序存储,每行数据的内容按4字节对齐,不够时补0。
Note:RGB565模式下,调色板对应的其实是16bit中RGB分量对应的掩码。
目录 |
---|