Ali*_*tad 10
使用LockBits()方法可以快速访问像素Bitmap.这将返回一个包含指向像素数据开头的指针的对象,您可以使用不安全的代码来访问内存.
http://www.bobpowell.net/lockingbits.htm
GetPixel 有两个原因:
由于您正在轮询屏幕 - 每次调用都会GetPixel导致到视频驱动程序的事务处理,而视频驱动程序又会从视频内存中获取像素数据.
相比之下,GetPixel在DIB上使用速度要快得多.
无论如何GetPixel做了几件事,包括坐标剪切/变换等.
因此,如果您正在使用一次查询多个像素值 - 您应该尝试在单个事务中将其安排到GDI /视频驱动程序.
使用GDI,您应该创建一个足够大小的DIB(请参阅参考资料CreateDIBSection).创建后,您将获得指向图像位数据的直接指针.然后将图像部分复制到DIB上(请参阅参考资料BitBlt).另外,GdiFlush在实际检查DIB的内容之前不要忘记打电话(因为视频驱动程序可能会进行异步绘图).
使用GD +你可能实际上也是这样做的,语法稍微简单一些.
| 归档时间: |
|
| 查看次数: |
6224 次 |
| 最近记录: |