iOS|iOS 图片裁剪

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 = https://www.it610.com/article/UIImagePNGRepresentation(newImage); [imgData writeToFile:@"/Users/apple/Desktop/new.png" atomically:YES]; }

【iOS|iOS 图片裁剪】注意:假如想在裁剪的图片外部加边框类似的东西,此时需要在第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,颜色为绿色,和裁剪图片一样大小的圆,此圆在图片外面。

    推荐阅读