iOS绘制涂鸦

时间:2021-7-9 作者:qvyue

        其实绘图过程也就点成线的过程,在ios绘图需要使用到的CGContextRef和CGMutablePathRef,下面简单说一些绘制的过程。

1、首先获取上下文内容也就是画在那个画布上

        CGContextRef context = UIGraphicsGetCurrentContext();

2、创建路径

        CGMutablePathRef path = CGPathCreateMutable();  

3、添加起始点

        CGPathMoveToPoint(path, &CGAffineTransformIdentity, x,y);

4、添加路径上的点绘制直线(从起始位置开始)

        CGPathAddLineToPoint(path, &CGAffineTransformIdentity,x,y); 

5、把路径添加到上下文(画布)中

        CGContextAddPath(context, path); 

6、设置路径的样式笔触颜色

        CGContextSetRGBStrokeColor(context, model.R, model.G, model.B,1);    

        设置线条宽度 

        CGContextSetLineWidth(context, model.pathWidth);

        把路径在画布上绘制出来

        CGContextStrokePath(context);

        这里一个基本的绘制过程就完成了,但是要是先在屏幕上捕捉触摸点然后挥之路径还需要实现touchesMoved: withEvent:方法,获取触摸的每个点并存储触摸关键点,然后在这里调用setNeedsDisplay方法,则会自动调用drawRect方法进行重绘,drawRect这里将存储的关键点传入即可完成手动绘制想要的图型。

        最后再补充一点就是保持当前绘制的内容为图片存到相册

// currentView 当前的view  创建一个基于绘图的图形上下文并指定大小为当前视图的bounds

UIGraphicsBeginImageContext(self.imageView.bounds.size); 

// renderInContext呈现接受者及其子范围到指定的上下文

[self.imageView.layer renderInContext:UIGraphicsGetCurrentContext()];

// 返回一个基于当前图形上下文的图片

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

// 移除栈顶的基于当前位图的图形上下文

UIGraphicsEndImageContext();

// 然后将该图片保存到图片图

UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。