【发布时间】:2010-03-02 06:27:12
【问题描述】:
解释我需要什么有点困难,但我会尝试:
我需要编写应用程序(winform),它是某种过滤器来处理它背后的图像/其他形式。除了一个例外 - 表单后面的所有内容都应该看起来像红色(例如)颜色,必须替换为任何其他指定的颜色,例如白色。
让我们想象一下,我用几行文本打开了 Windows Word。带有红色和黑色字母。 因此,当我将我的应用程序放在此文本上方时 - 它应该“过滤”红色符号并将它们填充为白色。
因此,据我了解这项任务:我必须在表单后面捕捉区域,然后对其进行处理(替换颜色)并在我的表单主体上绘制此图像。
有什么链接或者关键词可以解决吗?
更新:
所以 - 这是我的最终解决方案:
- 使表单透明(使用 TransparencyKey 和 BackColor 属性)
- 将图片框放在表单上
- 当我们需要更新图片框中的图片时 - 我们将当前图片替换为图片框1.Image = null;,然后用 (this.Refresh()) 刷新表单并新建快照
谢谢大家 ;-)
UPD 2: sample http://dl.dropbox.com/u/4486681/result.png
UPD 3: 这里是sources
【问题讨论】:
-
+1 - 我认为这是一个很棒的问题。
-
必须是winforms吗?我怀疑这种事情在 WPF 中可能更容易。
-
没有限制或强制性。这应该是具有任何形式的 windows .net 应用程序(至少带有标题和关闭按钮);-)
标签: c# .net winforms screen-scraping image-manipulation