iOS 图片裁剪

作者: 后浪普拉斯 | 来源:发表于2018-05-09 10:50 被阅读24次

    1、开启位图上下文

       //获取UIImage对象,显示到imageView上
        //创建位图,开启图片
        //size 位图大小
        //opaque alpha YES 不透明, NO透明
        //scale 获取生成图片大小 位图大小:20*20 生成图片大小是:(20*scale*20*scale)
        UIGraphicsBeginImageContextWithOptions(img.size, NO, 1);
    

    2、获取上下文

    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //在自定义的view的drawRect方法里,调用UIGraphicsGetCurrentContext获取的上下文,而在此处是获取的图层上下文(Layer Graphics Context)
    

    3、对位图上下文添加裁剪的范围,并对齐裁剪

    CGContextAddEllipseInRect(ctx, CGRectMake(25, 25, img.size.width/2, img.size.height/2));
    CGContextClip(ctx);
    

    4、从位图上下文中获取已经裁剪的图片

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    

    5、结束位图编辑

    UIGraphicsEndImageContext();
    

    6、图片的保存

    self.imageView.image = newImage;
        
        NSData *imgData = UIImagePNGRepresentation(newImage);
        [imgData writeToFile:@"/Users/apple/Desktop/new.png" atomically:YES];
    }
    

    注意:假如想在裁剪的图片外部加边框类似的东西,此时需要在第4步之前添加:
    CGContextSetLineWidth(ctx, 3);
    CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1);
    CGContextAddEllipseInRect(ctx, CGRectMake(25, 25, img.size.width/2, img.size.height/2));
    CGContextStrokePath(ctx);
    我只是加了一个宽度为1,颜色为绿色,和裁剪图片一样大小的圆,此圆在图片外面。

    相关文章

      网友评论

        本文标题:iOS 图片裁剪

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