UIImageCropper
简单的图片裁剪工具,适用于UIImagePickerController,支持自定义裁剪宽高比。纯Swift 4编写!
替代iOS的“仅裁剪至方形”功能。只需几行代码即可使用代理方法轻松设置。
要求
- iOS10+
- Xcode 9.2+
- Swift 4
安装
UIImageCropper通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod 'UIImageCropper'
(或者将UIImageCropper文件夹添加到您的项目中)
用法
导入pod
import UIImageCropper
创建UIImageCropper和UIImagePickerController的实例(可选,如果裁剪现有的UIImage)
UIImageCropper可以接受cropRatio
作为参数。默认比率为1(正方形)。
let picker = UIImagePickerController()
let cropper = UIImageCropper(cropRatio: 2/3)
设置UIImageCropper
cropper.picker = picker
cropper.delegate = self
//cropper.cropRatio = 2/3 //(can be set with variable, before cropper is presented, or in cropper init)
//cropper.cropButtonText = "Crop" // button labes can be localised/changed
//cropper.cancelButtonText = "Cancel"
如果只是裁剪现有的UIImage,则无需设置picker,只需要代理即可。只需给出要裁剪的图像并展示。
cropper.picker = nil // Make sure not set the picker when doing existing image cropping
cropper.image = UIImage(named: "image")
viewController.present(cropper, animated: true, completion: nil)
在两种情况下实现UIImageCropperProtocol
代理方法
func didCropImage(originalImage: UIImage?, croppedImage: UIImage?) {
imageView.image = croppedImage
}
//optional (if not implemented cropper will close itself and picker)
func didCancel() {
picker.dismiss(animated: true, completion: nil)
}
UIImageCropper将处理图像选择(代理方法)。要开始图像选择,只需展示UIImagePickerController实例。
self.present(self.picker, animated: true, completion: nil)
查看完整使用示例,请参见示例文件夹中的 CropperExample。
问题和贡献
如果您发现任何问题,请向此存储库添加问题。
欢迎提交改进和/或修复的拉取请求。
作者
Jari Kalinainen, jari(a)klubitii.com
许可证
UIImageCropper 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。