如何获取BMP文件的实际数据并转换为byte ?
我用
HBITMAP hBitmap = (HBITMAP) LoadImage(NULL, "c:\ico.bmp ", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
加载了一个图片,接下来想将其转换为BYTE用于处理
但是Hbitmap仅仅是句柄,那么我应该如何根据句柄获取位图的实际数据呢?
刚解除图形图像处理,还请大家多多帮助,可以的话,请给出例子,不胜感激
[解决办法]
int GetDIBits(
HDC hdc, // handle to DC
HBITMAP hbmp, // handle to bitmap
UINT uStartScan, // first scan line to set
UINT cScanLines, // number of scan lines to copy
LPVOID lpvBits, // array for bitmap bits
LPBITMAPINFO lpbi, // bitmap data buffer
UINT uUsage // RGB or palette index
);
[解决办法]
不知道这是不是答案
BITMAP bm ;
pBitmap-> m_hObject = (HBITMAP) LoadImage(NULL, "c:\ico.bmp ", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); //加载图片
pBitmap -> GetObject(sizeof(BITMAP), &bm) ;
unsigned char *pc = new unsigned char[bm.bmheight * bm.bmWidthBytes];
GetBitmapBit(bm.bmheight * bm.bmWidthBytes, px) ;