Visual Basic 2010中的着色形状

时间:2012-10-29 21:09:42

标签: visual-studio-2010 graphics

所以我正在制作一个程序,你可以加载一个图像并在图像中填充3种不同颜色的形状(该程序用于着色不同颜色的房地产图。颜色是红色,绿色,黄色。) 。我可以加载图像,保存并在图片上绘图,但我的问题是;填充整个形状的代码是什么。形状是随机的。我明白有.FillRectangle和.FillEllipse以及什么不是,但我需要一个这是一个油漆桶工具。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我没有任何功能性的.NET代码,但我可以提供一些想法,因为我已经在平面设计工作了很多年。

油漆桶工具的工作方式与“魔棒”工具类似。如果您在Adobe Photoshop中熟悉这些工具,那么您可能知道一些影响其行为的参数。 (容忍,连续,反别名等)

当您单击图像中的给定像素时,这些工具中的任何一个都必须分析周围的像素以确定相似性。该工具的一个选项控制比较被视为“相似”或“不相似”的阈值。

想象一下,你正在使用黑白(1位)图像。如果单击白色像素,则可以简单快速地确定该点是否与任何其他白色像素相邻。您可以将比较级联,直到找不到更多的白色像素,然后填充(或选择)该区域。

但是,现在考虑使用8位灰度图像。如果单击白色(255)像素,则可能存在非常轻但不相同的相邻像素(例如值250-254)。是否应填写/选择这些相似但不相同的颜色应基于相似性阈值。

JPG图像采用有损压缩算法,该算法会对其他类似颜色引入轻微变化。这导致“模糊”区域使用低公差值不能很好地填充或选择。您需要允许与原始像素的偏差有限,以获得所需的效果。