读书人

得到像素RGB数组有关问题

发布时间: 2012-01-12 22:11:58 作者: rapoo

得到像素RGB数组问题
我有设备DC的指针,但通过GetPixel得到像素的RGB值速度太慢,有没有其他方法可以得到DC的RGB数组?速度要快

[解决办法]
HDC hdc;
HDC mdc;
BITMAP bm;
HBITMAP hBmp;
unsigned char *px; // 指向存储像素的地址
hdc = GetDC(hWnd);
mdc = CreateCompatibleDC(hdc);
hBmp = LoadImage(NULL, "test.bmp ", IMAGE_BITMAP, 40, 40, LR_LOADFROMFILE);
GetObject(hBmp, sizeof(BITMAP), &bm);
px = new unsigned char[bm.bmHeight * bmWidthBytes];
//把图片的内容存储到px数组中
GetBitmapBits(hBmp, bm.bmHeight * bm.WidthBytes, px);
[解决办法]
创建一个兼容DC和兼容位图,把兼容位图选入兼容DC中,把窗口DC上的内容BitBlt到兼容DC上,选出兼容位图,这个位图的内容就是窗口DC的内容了。简单的截屏原理。

读书人网 >VC/MFC

热点推荐