位图文件格式:
文件头
文件标题(BITMAPFILEHEADER)
信息标题(BITMAPINFO)
调色板数据
实际图像数据
文件标题:
typedef struct tagBITMAPFILEHEADER
{
UINT bfType; //文件类型标识,应该是“BM”对应的数值
DWORD bfSize; //整个文件的长度,以字节为单位
UINT bfReserved1; //备用字段1
UINT bfReserved2; //备用字段2
DWORD bfOffBits; //文件头的长度,即位图文件开始到实际位图起点的偏移量
}BITMAPFILEHEADER
信息标题:
信息标题主信息
调色板信息(随色彩信息类型等的不同而项目数量不一样)
typedef struct tagBitMAPINFO
{
BITMAPFILEHEADER bmiHeader; //含有文件的尺寸大小及色彩格式的信息
RGBQUAD bmiColors[1]; //RBGQUAD数据结构的一个数组定义位图中的色彩
}BITMAPINFO;
Cbitmap类对象初始化
1 加载资源
Bitmap.LoadBitmap
2 用内存空白位图初始化Cbitmap对象
a. Cbitmap.CreateCompatibleBitmap(pDC,300,200);
b. Bitmap.CreateBitmap(300,200,24,1,p_Data);
3.通过HBITMAP句柄得到位图图对象指针
pBitmap=CBitmap::FromHandle(hBitmap)