ios-image-editor 1.1.4

ios-image-editor 1.1.4

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新版本2014年12月

Heitor Ferreira 维护。



  • Heitor Ferreira

iOS Image Editor

一个用于图像裁剪的 iOS ViewController。具有扩展功能和灵活性的替代 UIImagePickerController 编辑器。如果您的应用程序正在使用这个功能,请留言告知,我很乐意了解。

功能

  • 全分辨率图像
  • 无限平移、缩放和旋转
  • 中心点在触摸区域进行缩放和旋转
  • 双击可重置
  • 处理 EXIF 方向
  • 自行设计接口

使用

HFImageEditorViewController *imageEditor = [[HFImageEditorViewController alloc] initWithNibName:@"DemoImageEditor" bundle:nil];

imageEditor.sourceImage = image;
imageEditor.doneCallback = ^(UIImage *editedImage, BOOL canceled){
    ...
}

配置属性

sourceImage

要裁剪的全分辨率 UIImage

previewImage

对于宽度大于 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");
}];

doneCallback

当图像编辑器完成时调用的回调块。返回裁剪后的图像和 BOOL,指示完成结果是由 done 还是 cancel 动作的。

cropSize

指定裁剪区域宽度和高度为屏幕坐标的 CGSize。注意:目前 HFImageEditorViewController 期望在设置其视图和 frameView 端口之后设置 cropSize。如果您对 HFImageEditorViewController 进行了子类化,您可以在 viewDidLoad 中这样做;否则,您应在将 HFImageEditorViewController 添加到视图控制器层次结构之后设置它。

cropRect

指定屏幕坐标中裁剪区域的CGRect。如果裁剪区域不是居中,请使用它代替cropSize。注意:当前HFImageEditorViewController期望在设置其视图和frameView出口之后才设置cropRect。如果您创建了HFImageEditorViewController的子类,您可以在viewDidLoad中完成此操作;如果不是,您应该在将HFImageEditorViewController添加到视图控制器层次结构之后设置它。

outputWidth

裁剪图像的宽度。如果没有定义,则假设为源图像的宽度。

minimumScale, maximumScale

图像缩放的界限。如果没有定义,图像缩放无限制。

checkBounds

设置为true以将图像变换限制在范围内,从而避免在结果图像中出现黑色背景。

panEnabled, rotateEnabled, scaleEnabled, tapToResetEnabled

布尔属性,用于启用/禁用特定手势

输出属性

cropBoundsInSourceImage

返回一个CGRect,表示源图像坐标系中当前裁剪矩形的坐标。源图像坐标系以图像的左下角为原点。注意,如果已应用旋转,则cropBoundsInSourceImage表示旋转后裁剪矩形的边界框。

界面

创建自己的xib来创建自定义用户界面。

  • HFImageEditorViewController(或其子类)设置为文件所有者
  • 设置frameView出口。此视图必须实现HFImageEditorFrame协议。在裁剪区域它必须是透明的,图片将显示在其后方。已提供默认实现ImageEditorFrameView。
  • 将界面元素连接到可用的操作:完成重置重置动画取消

演示应用还展示了扩展控件如何实现:使用三个按钮来实现方裁剪、肖像裁剪和横幅裁剪。

如果需要在图像处理过程中更新界面(例如禁用UI控件),请使用子类钩子(startTransformHookendTransformHook)。

许可

ios-image-editor在MIT许可下可用。有关更多信息,请参阅LICENSE文件。