美文网首页
iOS绘制涂鸦

iOS绘制涂鸦

作者: 落魄的iOS程序员 | 来源:发表于2021-04-09 17:22 被阅读0次

            其实绘图过程也就点成线的过程,在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);

    相关文章

      网友评论

          本文标题:iOS绘制涂鸦

          本文链接:https://www.haomeiwen.com/subject/mccwkltx.html