初始填充 UIImagePickerController 的图像
Image to Initially Fill UIImagePickerController
在我的 iOS 应用程序中,我想从照片库中抓取图像并将它们裁剪为正方形格式。 UIImagePickerController
很好地处理了这一点,但有一个小问题:当我 select 从库中取出一张横向照片时,它没有填充裁剪区域(对于纵向图像,它填充)。这允许用户 select 非正方形区域。 有没有办法强制图像选择器垂直填充裁剪区域就像它水平填充一样 - 而无需实现我自己的图像选择器?
我的代码:
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)
}
}
选择一张风景图片,看起来是这样的:
相反,我希望图像水平和垂直延伸到裁剪框,因此图像选择器将始终 return 方形图像。
要结束这个问题——我是这样解决的:
使用标准图像选择器似乎无法将图像垂直扩展到边界。选项是创建您自己的图像选择器或使用以下解决方法,这在大多数情况下可能就足够了:
如果用户没有放大图像的任何部分,则图像的中心最接近用户想要的效果,您可以通过切掉两边等宽的切片来获得正方形图像。
我在故事板 (90x90) 中指定了图像视图的高度和宽度,并在故事板中选择了纵横比填充和裁剪到边界。如果用户不放大,图像将从中心裁剪为 90x90。
在我的 iOS 应用程序中,我想从照片库中抓取图像并将它们裁剪为正方形格式。 UIImagePickerController
很好地处理了这一点,但有一个小问题:当我 select 从库中取出一张横向照片时,它没有填充裁剪区域(对于纵向图像,它填充)。这允许用户 select 非正方形区域。 有没有办法强制图像选择器垂直填充裁剪区域就像它水平填充一样 - 而无需实现我自己的图像选择器?
我的代码:
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)
}
}
选择一张风景图片,看起来是这样的:
相反,我希望图像水平和垂直延伸到裁剪框,因此图像选择器将始终 return 方形图像。
要结束这个问题——我是这样解决的:
使用标准图像选择器似乎无法将图像垂直扩展到边界。选项是创建您自己的图像选择器或使用以下解决方法,这在大多数情况下可能就足够了:
如果用户没有放大图像的任何部分,则图像的中心最接近用户想要的效果,您可以通过切掉两边等宽的切片来获得正方形图像。
我在故事板 (90x90) 中指定了图像视图的高度和宽度,并在故事板中选择了纵横比填充和裁剪到边界。如果用户不放大,图像将从中心裁剪为 90x90。