读书人

不想用GetPixel怎样把屏幕上某个区域

发布时间: 2012-03-09 16:54:57 作者: rapoo

不想用GetPixel,怎样把屏幕上某个区域的点存储到一个颜色数组里面
比如说我要把屏幕上CRect(0,0,40,40)这块的图像存储到一个COLORREF clr[40][40]里面

GetPixel太慢了,大家有什么更好的方法么


[解决办法]
HDC hDCScreen = CreateDC("DISPLAY",NULL,NULL,NULL);
HDC hMemDC = CreateCompatibleDC (hDCSCreen);
HBITMAP hBmp = CreateCompatibleBitmap (hDCScreen, 40, 40);
SelectObject (hMemDC, hBmp);
BitBlt (hMemDC, 0, 0, 40, 40, hDCSCreen, 0, 0, SRCCOPY);

///////////////////////
hBmp 就指向了你要的那个位图。
[解决办法]
那我如何像浏览数组clr[i][j]一样浏览hBmp中的颜色值呢

C/C++ code
  //定义数组指针  typedef TCHAR (*f)[40][40];  //  f d = (f)hBmp;     (*d)[1][1] 像素 (*d)[1][2] 像素  。。。。。。 

读书人网 >VC/MFC

热点推荐