读书人

VC bitblt截屏性能有关问题

发布时间: 2012-04-26 14:01:31 作者: rapoo

VC bitblt截屏性能问题
最近在做一个关于屏幕监控的应用,发现用bitblt截屏,1366*768大小的屏幕截屏下来要用到50ms左右。而就算是截一个1*1大小的也要22ms,请问这是怎么回事?
另外有其它较好的截屏方法么?

截屏的代码如下:

C/C++ code
HDC hDC=::GetDC(NULL);    HDC hMemDC=CreateCompatibleDC(hDC);    HBITMAP hBitmap=CreateCompatibleBitmap(hDC,width,height);    HBITMAP hOldBitmap;    hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);    BitBlt(hMemDC,0,0,width,height,hDC,left,right,SRCCOPY);


[解决办法]
hook消息只能截获有限的图像更新,mirror驱动会禁用掉桌面组合
监控主要慢在网络传输上,不是截图的速度
所以应该减少传送的数据,可以用分块比较传输,xor,隔行扫描,差分,有损压缩

读书人网 >VC/MFC

热点推荐