画布中相同颜色的填充区域

本文关键字:填充 填充区 区域 颜色 布中相 | 更新日期: 2023-09-27 18:24:42

在编写类似于MS Paint的应用程序时,我已经拥有了铅笔、形状和线条功能。我正在将System.Windows.Shapes.Shape对象(如矩形、椭圆等)添加到Canvas中,一切都很好。现在我想知道如何创建"bucket"功能,比如在MS Paint中(填充相同颜色的区域),是否可以在我的应用程序中做这样的事情,或者我需要重构它?

画布中相同颜色的填充区域

我认为根据您的技能和时间,有不同的方法可以实现这一点。

如果我愿意这样做,我会通过链接相同颜色和相同位置的像素

http://en.wikipedia.org/wiki/Connected-component_labeling这种方法。然后给它们上色。

或者这样:http://en.wikipedia.org/wiki/Flood_fill