【发布时间】:2015-07-11 09:45:29
【问题描述】:
在我的 iOS 应用中,我想从照片库中抓取图像并将它们裁剪为方形格式。 UIImagePickerController 很好地处理了这个问题,但有一个小问题:当我从库中选择一张横向照片时,它不会填满裁剪区域(对于纵向图像它会填满)。这允许用户选择一个非正方形区域。 有没有办法像水平一样强制图像选择器垂直填充裁剪区域 - 无需实现我自己的图像选择器?
我的代码:
class AddProfileViewController: UIViewController, UIGestureRecognizerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var profileImageView: EnhancedImageView!
let imagePicker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
// ...
imagePicker.delegate = self
}
func profileImageTapped() {
imagePicker.allowsEditing = true
imagePicker.sourceType = .PhotoLibrary
presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
// ...
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
dismissViewControllerAnimated(true, completion: nil)
}
}
选择一张风景图片,如下所示:
相反,我希望图像水平和垂直延伸到裁剪框,因此图像选择器将始终返回方形图像。
【问题讨论】:
-
目前没有答案 - 如果不编写自己的图像选择器,可能无法做到这一点。这是我现在解决(或避免)它的方法 - 与其说是解决方案,不如说是一种解决方法:如果用户没有放大图像的任何部分,则图像的中心是用户想要的最佳近似值,并且我通过在两边切掉等宽的切片来得到方形图像。
标签: ios swift uiimagepickercontroller