- 注册时间
- 2004-9-4
- 最后登录
- 1970-1-1
|
发表于 2006-11-28 22:00:51
|
显示全部楼层
这个BMP嘛~~首先是一个BMP文件头- typedef struct tagBITMAPFILEHEADER {
- WORD bfType;
- DWORD bfSize;
- WORD bfReserved1;
- WORD bfReserved2;
- DWORD bfOffBits;
- } BITMAPFILEHEADER, *PBITMAPFILEHEADER;
复制代码 然后是一个BMP信息头~- 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, *PBITMAPINFOHEADER;
复制代码 如果BMP信息头里面的biBitCount <= 8的话,说明这个BMP用的是索引色,那么紧接着的就是BMP的调色板,这是个数组,大小等于2^biBitCount如果不是索引色就没有这个调色板了。
在接下来就是BMP的图像数据了~
至于读取,有了上面的结构之后当然可以自己写函数来读了,如果懒得写可以使用WIN32API来读取- The LoadBitmap function loads the specified bitmap resource from a module's executable file. This function has been superseded by the LoadImage function.
- HBITMAP LoadBitmap(
- HINSTANCE hInstance, // handle to application instance
- LPCTSTR lpBitmapName // name of bitmap resource
- );
复制代码 其中的
HBITMAP 返回值是一个位图句柄,读取成功后就可以用这个句柄来YY你的图像了
hInstance 是当前应用程序的句柄,该设什么就设什么
lpBitmapName 就是图像的文件名,这个不用多说吧~ |
|