【问题标题】:Searching Graphics Device Context For Pixels of Specific Color在图形设备上下文中搜索特定颜色的像素
【发布时间】:2010-11-21 00:20:30
【问题描述】:

我正在编写一些自动化代码,但在寻找一种有效方法来检查显示器上当前存在的像素时遇到了问题。

我已经熟悉了 gdi32 库中存在的 GetPixel 函数,但是它太慢了(实际上扫描一条大约 1900 像素的线大约需要 10 秒)。

我已经提出了从图形设备上下文的片段中制作位图并测试这是否更有效的想法(我无法想象它会是这样,考虑到它需要大量的 r/w与屏幕图像保持合理的同步),但在我这样做之前,我想知道是否有人有更好的想法。

我真正喜欢的是一种在部分或全部当前(或相当接近当前)图形上下文中收集像素颜色二维数组的有效方法,希望使用 .NET。

【问题讨论】:

    标签: .net gdi


    【解决方案1】:

    您必须锁定图像并直接使用内存。有一篇关于如何做到这一点的好文章here

    【讨论】:

      【解决方案2】:

      我最终做的是捕获整个图形上下文的屏幕截图,并在生成的位图中搜索我在静态上下文中寻找的确切内容。然后,因为我关心的图形输出区域只有大约 70x70 像素,所以我只是每 10 毫秒捕获这一小部分并检查它是否有有趣的变化。

      这不需要任何不安全的代码或图形上下文的锁定并且相当有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多