首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

不想用GetPixel,怎样把屏幕上某个区域的点存储到一个颜色数组里面,该怎么解决

2012-03-09 
不想用GetPixel,怎样把屏幕上某个区域的点存储到一个颜色数组里面比如说我要把屏幕上CRect(0,0,40,40)这块

不想用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] 像素  。。。。。。 

热点排行