最近项目中用到了自定义图片裁剪区域的图片裁剪功能,自己写了一个,可能有诸多不完善的地方,请大家指正。
支持任意区域裁剪,9:16裁剪、16:9裁剪、1:1裁剪、圆形裁剪等等,总之裁剪框的大小,裁剪框的区域都自定义;
如下截图:
整体思路:
1.利用scrollview的zoom缩放功能,缩放对象是所需裁剪图片的imageView;
2.利用scrollView的contentInset参数,保证裁剪图片在裁剪框内,并且可以裁剪图片任意位置;
3.坐标转换找出裁剪区域对应的在图片中的位置,进行图片的渲染裁剪。
使用方法
LZImageCropping *imageBrowser = [[LZImageCropping alloc]init];
//设置代理
imageBrowser.delegate = self;
//设置自定义裁剪区域大小
imageBrowser.cropSize = CGSizeMake(self.view.frame.size.width - 60, (self.view.frame.size.width-60));
//设置图片
NSString *path = [[NSBundle mainBundle] pathForResource:@"IMG_1121" ofType:@"jpg"];
UIImage *image = [UIImage imageWithContentsOfFile:path];
cropper.image = image;
//是否需要圆形
imageBrowser.isRound = YES;
[self presentViewController:imageBrowser animated:YES completion:nil];