一个用于图像裁剪的 iOS ViewController。具有扩展功能和灵活性的替代 UIImagePickerController 编辑器。如果您的应用程序正在使用这个功能,请留言告知,我很乐意了解。
HFImageEditorViewController *imageEditor = [[HFImageEditorViewController alloc] initWithNibName:@"DemoImageEditor" bundle:nil];
imageEditor.sourceImage = image;
imageEditor.doneCallback = ^(UIImage *editedImage, BOOL canceled){
...
}
要裁剪的全分辨率 UIImage
对于宽度大于 1024 或高度大于 1024 的图像,在视图显示之前,图像编辑器将创建一个预览图像。如果已经有一个预览,您可以通过设置 preview 属性来获得更快的过渡。例如,如果图像是使用 UIImagePickerController
获取的
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
[self.library assetForURL:assetURL resultBlock:^(ALAsset *asset) {
UIImage *preview = [UIImage imageWithCGImage:[asset aspectRatioThumbnail]];
HFImageEditorViewController *imageEditor = [[HFImageEditorViewController alloc]
initWithNibName:@"DemoImageEditor" bundle:nil];
self.imageEditor.sourceImage = image;
self.imageEditor.previewImage = preview;
...
} failureBlock:^(NSError *error) {
NSLog(@"Failed to get asset from library");
}];
当图像编辑器完成时调用的回调块。返回裁剪后的图像和 BOOL,指示完成结果是由 done
还是 cancel
动作的。
指定裁剪区域宽度和高度为屏幕坐标的 CGSize。注意:目前 HFImageEditorViewController 期望在设置其视图和 frameView 端口之后设置 cropSize。如果您对 HFImageEditorViewController 进行了子类化,您可以在 viewDidLoad 中这样做;否则,您应在将 HFImageEditorViewController 添加到视图控制器层次结构之后设置它。
指定屏幕坐标中裁剪区域的CGRect。如果裁剪区域不是居中,请使用它代替cropSize
。注意:当前HFImageEditorViewController
期望在设置其视图和frameView
出口之后才设置cropRect
。如果您创建了HFImageEditorViewController
的子类,您可以在viewDidLoad中完成此操作;如果不是,您应该在将HFImageEditorViewController
添加到视图控制器层次结构之后设置它。
裁剪图像的宽度。如果没有定义,则假设为源图像的宽度。
图像缩放的界限。如果没有定义,图像缩放无限制。
设置为true以将图像变换限制在范围内,从而避免在结果图像中出现黑色背景。
布尔属性,用于启用/禁用特定手势
返回一个CGRect,表示源图像坐标系中当前裁剪矩形的坐标。源图像坐标系以图像的左下角为原点。注意,如果已应用旋转,则cropBoundsInSourceImage表示旋转后裁剪矩形的边界框。
创建自己的xib来创建自定义用户界面。
HFImageEditorViewController
(或其子类)设置为文件所有者frameView
出口。此视图必须实现HFImageEditorFrame
协议。在裁剪区域它必须是透明的,图片将显示在其后方。已提供默认实现ImageEditorFrameView。完成
、重置
、重置动画
和取消
。演示应用还展示了扩展控件如何实现:使用三个按钮来实现方裁剪、肖像裁剪和横幅裁剪。
如果需要在图像处理过程中更新界面(例如禁用UI控件),请使用子类钩子(startTransformHook
、endTransformHook
)。
ios-image-editor在MIT许可下可用。有关更多信息,请参阅LICENSE文件。