如何在将图像加载到视图控制器之前裁剪图像
问题描述:
在我的视图控制器中,我的UIImageView被设置为370x370,当我加载图像时它目前拉伸以适合ImageView。如何在将图像加载到视图控制器之前裁剪图像
这是我目前有选择的图像:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
// Runs when user is picking image from library
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
self.previewImageView.image = pickedImage
self.selectImageButton.isEnabled = false
self.selectImageButton.isHidden = true
uploadImage(image: pickedImage)
picker.dismiss(animated: true, completion: nil)
}
}
我是相当新的雨燕,这将是最好的是实现图像裁剪成我的代码?
答
当你调用ImagePicker功能,设置allowsEditing为真:
self.imagePicker.allowsEditing = true
self.imagePicker.sourceType = .camera
self.present(self.imagePicker, animated: true, completion: nil)
另一种选择,如果你想多一点的定制,你可以使用这个库:https://github.com/TimOliver/TOCropViewController
而且在didFinishPickingMediaWithInfo,你做这样的事情:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage{
dismiss(animated: true, completion: nil)
let cropVC = TOCropViewController(image: pickedImage)
cropVC.delegate = self
cropVC.aspectRatioPickerButtonHidden = true
cropVC.aspectRatioPreset = .presetSquare
cropVC.aspectRatioLockEnabled = true
cropVC.resetAspectRatioEnabled = false
self.present(cropVC, animated: true, completion: nil)
}
}
你确定你想裁剪?这听起来像是你真的想将imageView内容模式设置为Aspect Fit。 (UIImageView,属性是contentMode,值是aspectFit。) – dfd
这不是逻辑。 –