1.开发背景

最近开发的项目中,上传图片要求裁剪为4比3的比例,iOS自带裁剪功能是1比1,本来想从网上找一些裁剪工具,发现都不怎么理想,于是就自己做了一个,可自定义裁剪区域的工具,希望对大家有用(由于排版,部分代码用的截图,demo中有详细代码,抱歉)。

2.效果演示

iOS 相册,图片裁剪工具(附demo)

iOS 相册,图片裁剪工具(附demo)

iOS 相册,图片裁剪工具(附demo)

3.工具使用


iOS 相册,图片裁剪工具(附demo)

主要提供两个方法

- (void)showImagePickerWithPresentController:(UIViewController*)presentController

sourceType:(UIImagePickerControllerSourceType)sourceType

allowEdit:(BOOL)allowEdit

cutFrame:(CGRect)cutFrame;

- (void)showImagePickerWithPresentController:(UIViewController*)presentController

sourceType:(UIImagePickerControllerSourceType)sourceType

allowEdit:(BOOL)allowEdit

radio:(CGFloat)radio;

4.主要实现

由于是自定义的裁剪工具,所以,要禁用系统的裁剪

_picker = [[UIImagePickerController alloc] init];

_picker.delegate = self;

_picker.sourceType = sourceType;

[_picker setAllowsEditing:NO];

然后,在选择照片完成的回调中,吊起自身的裁剪工具


iOS 相册,图片裁剪工具(附demo)

可在调用裁剪,设置以下属性

@property (nonatomic, strong) UIColor *cutBorderColor;//边框颜色

@property (nonatomic, assign) CGRect cutFrame;//边框位置

@property (nonatomic, assign) CGFloat maxScale;//最大缩放比例

@property (nonatomic, strong) UIImage *originalImage;//原图像

@property (nonatomic, assign) CGFloat cutBorderWidth;//边框宽度

@property (nonatomic, strong) UIColor *cutCoverColor;//周围覆盖层颜色

通过边框在图片中所占的位置裁剪图片


iOS 相册,图片裁剪工具(附demo)

5.demo链接

裁剪工具demo地址



相关文章: