我需要像Windows中的Paint应用程序一样创建一个应用程序。请通过此链接查看视频
https://dl.dropboxusercontent.com/u/56721867/Screen%20Recording.mov
这就是我需要我的应用程序工作的方式。 我可以使用 UIBezierPath 和 CGContext 类绘制线条和填充颜色,但是如何通过点击内部的颜色来填充封闭区域内的颜色,如视频中所示。请让我知道这种方法以及iOS中的哪个类可以实现这一目标。 谢谢!
答案 0 :(得分:2)
此工具称为Flood Fill:
您可以从以下网站找到有关洪水填充的信息:
Flood fill
Lode's Computer Graphics Tutorial Flood Fill
如果您想要访问:UIImageScanlineFloodfill
的Objective-C示例答案 1 :(得分:1)
我们有一个UIBezierPath
属性containsPoint:
在- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
if ([aPath containsPoint:touchloc1]) {
//then set a flag value.
}
在- (void)drawRect:(CGRect)rect
方法中添加以下代码
if (flag){
[[UIColor redColor] setFill];
[yourPath fill];
}
else{
//Whatever code requires for your drawing.
}
希望它有效。
答案 2 :(得分:0)
正如CRDAve所说,这个链接给了我很多帮助。请访问https://github.com/Chintan-Dave/UIImageScanlineFloodfill
并使用以下代码 - (void)touchesBegan:(NSSet *)触及withEvent:(UIEvent *)事件
if (Fill_clicked==1) {
UIImage *image1 = [paintingView.image floodFillFromPoint:lastPoint withColor:newcolor andTolerance:tolorance];
paintingView.image=image1;
}
lastpoint来自上面的方法。我设置为10。