如何获得Bitmap的bits
我是打开一个bmp文件,画在界面上,然后通过画矩形选择一个区域,想把这块区域截图截取下来,先保存到内存中一个二进制数组中,然后画到另一个地方。下面是截取的代码:
CClientDC dc(this);
CDC memDC;
CRect rc(oldPt,newPt);
memDC.CreateCompatibleDC(&dc);
int Width = rc.Width();
int Height = rc.Height();
CBitmap bm;
bm.CreateCompatibleBitmap(&dc, Width, Height);
CBitmap* pOld = memDC.SelectObject(&bm);
memDC.BitBlt(0, 0, Width, Height, &dc, 0, 0, SRCCOPY);
memDC.SelectObject(pOld);
BITMAP btm;
bm.GetBitmap(&btm);
DWORD size = btm.bmWidthBytes * btm.bmHeight;
BYTE* bytesImage=new BYTE[size];
bm.GetBitmapBits(size,bytesImage);
然后我在另一个地方画出来的图像是线条,跟原图选的区域根本就不一样我用GetDIBits获得的图示灰色的,什么都没有。
请教大侠该如何获取位信息呢?这个问题怎么解决呢,谢谢!
能解决的话,可以加分,谢谢!