我正在尝试使用一些代码来捕获部分屏幕,使用Windows上的getPixel,设备上下文为空(捕获屏幕而不是窗口),但它确实很慢。似乎GetDIBits()可以很快,但似乎有点复杂......我想知道是否有一个库可以将整个区域放入一个数组,而像素[x] [y]将返回24位颜色像素的代码?
或者Mac上是否存在此类库?或者,如果Ruby或Python已经有这样的库可以做到这一点?
答案 0 :(得分:3)
我从来没有这样做,但我会尝试:
创建内存设备上下文(DC) 使用CreateCompatibleDC传递它 桌面的设备上下文 (的GetDC(NULL))。
创建一个位图(使用 CreateCompatibleBitmap)相同 大小作为捕获的区域。
在DC中选择位图 创建(使用SelectObject)。
从中做一个BitBlt 桌面DC到你创建的DC(使用SRCCOPY标志)。
如果以错误的顺序执行操作,使用设备上下文可能会导致GDI泄漏,因此请确保阅读有关您使用的所有GDI函数的文档(例如SelectObject,GetDC等)。