【问题标题】:Coloring Shapes in Visual Basic 2010在 Visual Basic 2010 中为形状着色
【发布时间】:2012-10-29 21:09:41
【问题描述】:

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

【问题讨论】:

标签: visual-studio-2010 graphics


【解决方案1】:

我没有任何功能性 .NET 代码给你,但我可以提供一些想法,因为我从事平面设计多年。

油漆桶工具的工作方式类似于“魔杖”工具。如果您熟悉 Adob​​e Photoshop 中的这些工具,那么您可能知道影响其行为的一些参数。 (容差、连续、抗锯齿等)

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

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

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

JPG 图像采用有损压缩算法,该算法会在其他相似的颜色上引入细微的变化。这会导致使用低容差值无法很好地填充或选择的“模糊”区域。您将希望允许与原始像素的偏差有限,以获得所需的效果。

【讨论】:

  • 所以如果我使用一张从来不是 jpeg 的图片,那能解决我的问题吗?
  • 它会有所帮助。如果您要填充的区域的值相同,则可以省略处理公差的代码。一些不会引入变化的图形格式是 PNG、TIF 和 BMP。
猜你喜欢
  • 2021-12-03
  • 1970-01-01
  • 2021-01-09
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
  • 2011-05-25
  • 2011-11-22
相关资源
最近更新 更多