不想用GetPixel,怎样把屏幕上某个区域的点存储到一个颜色数组里面,该怎么解决
不想用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中的颜色值呢
比如说我要把屏幕上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] 像素 。。。。。。