我想创建一个颜色映射器,它将在屏幕上找到任何匹配的颜色,然后渲染映射的颜色。这对于某些颜色百叶窗很有用(例如它们看不到红色,因此所有红色像素都应该映射到一些蓝色像素)。
我知道gdi32函数GetPixel
和SetPixel
,但我相当肯定性能会很差。从技术上讲,你必须遍历所有屏幕坐标,获取像素,检查它并设置像素。当我们这样做时,循环对提高性能也很重要。但任何方式都会相当密集。
如果我们可以将某些内容挂钩到操作系统的渲染过程(例如屏幕缓冲区......)来检查和修改那里的像素,那将是理想的选择。这与WPF
支持允许我们注入一些像素着色器(通过Effect
属性)的图层非常相似。
我想就你如何做到这一点得到一些建议。如果建议使用一些Win API函数名称就足够了,因为我已经知道如何与EasyHook
挂钩。
我确信这是可能的,但可能很难做到。任何建议都将不胜感激。