位图有关的格式信息
位图的内存格式由 信息头 和 像素数据 组成。

GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&bmp); 获取 HBITMAP 句柄包含的位图信息结构,不包含像素数据内容。
typedef struct tagBITMAP {
LONG bmType; // 位图类型,必须为 0
LONG bmWidth; // 位图宽度(以像素为单位)
LONG bmHeight; // 位图高度(以像素为单位)
LONG bmWidthBytes; // 每行字节数
WORD bmPlanes; // 颜色平面数
WORD bmBitsPixel; // 每个像素占用的位数
LPVOID bmBits; // 指向像素数据的指针
} BITMAP;
======================================= BMP 文件的构成 =====================================================

》》第一部分: 文件头 《《
位图文件头

typedef struct tagBITMAPFILEHEADER {
UINT bfType;
DWORD bfSize;
UINT bfReserved1;
UINT bfReserved2;
DWORD bfOffBits;
}BITMAPFILEHEADER;
》》第二部分:位图信息头《《

typedef struct tagBITMAPINFOHEADER {
DWORD biSize; // 结构体的大小(以字节为单位)
LONG biWidth; // 位图的宽度(以像素为单位)
LONG biHeight; // 位图的高度(以像素为单位)
WORD biPlanes; // 颜色平面数(必须为 1)
WORD biBitCount; // 每个像素占用的位数
DWORD biCompression; // 压缩类型
DWORD biSizeImage; // 图像数据的大小(以字节为单位)
LONG biXPelsPerMeter; // 水平分辨率(每米的像素数)
LONG biYPelsPerMeter; // 垂直分辨率(每米的像素数)
DWORD biClrUsed; // 使用的颜色数
DWORD biClrImportant; // 重要的颜色数
} BITMAPINFOHEADER;
》》第三部分:像素数据 Bits《《
阵 列 数 据

浙公网安备 33010602011771号