我有一个 UIImage,它是 UIImageView 中绘制的黑白图像。如何在触摸时用颜色填充线条内部?

Posted

技术标签:

【中文标题】我有一个 UIImage,它是 UIImageView 中绘制的黑白图像。如何在触摸时用颜色填充线条内部?【英文标题】:I have an UIImage that is a line drawn black & white image in a UIImageView. How can I fill inside of the lines with color on touch? 【发布时间】:2013-05-24 03:55:44 【问题描述】:

我在 UIImageView 中有这个 UIImage:

我想要这样当用户触摸任何盒子内部时,它会被蓝色填充。

这只是一个例子……我要使用的实际图像不是正方形,而是更复杂的线条图,所以用代码绘制它会非常复杂。

最好的方法是什么?

【问题讨论】:

为什么会有这样的图片。如果用颜色填充矩形是您的要求。请改用自定义 UIView。并使用 CGContext 绘制这些矩形,当用户单击视图时,在视图上调用 setNeedsDisplay,这将为视图调用 drawRect。在那里你可以填写这些矩形。 How to draw a Rectangle in -drawRect: 和 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event; 会帮助你.. 这只是一个例子……我要使用的实际图像不是正方形,而是更复杂的线条图。 【参考方案1】:

您可以使用洪水填充算法。

这是填充任何图像的最佳方式。

有一些链接

http://en.wikipedia.org/wiki/Flood_fill

并从这里获取示例代码

Flood Fill

【讨论】:

【参考方案2】:

使用UIView并实现它的drawrect方法来显示颜色。使用QuartzCoreCoreGraphics来绘制。通过向视图绘制颜色来实现触摸。

【讨论】:

以上是关于我有一个 UIImage,它是 UIImageView 中绘制的黑白图像。如何在触摸时用颜色填充线条内部?的主要内容,如果未能解决你的问题,请参考以下文章

创建 UIImage 抠图

如何在 Swift 中从文件夹中获取 UIImage 数组?

如何在不破坏滚动功能的情况下将 UIImage 添加到 UIScrollView?

UIImageView 在我设置图像时移动或调整大小

UIImage 未显示在 UITableViewCell 中

通过自定义形状裁剪 UIImage