如何在将图像加载到视图控制器之前裁剪图像

如何在将图像加载到视图控制器之前裁剪图像

问题描述:

在我的视图控制器中,我的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) 
    } 
} 

我是相当新的雨燕,这将是最好的是实现图像裁剪成我的代码?

+1

你确定你想裁剪?这听起来像是你真的想将imageView内容模式设置为Aspect Fit。 (UIImageView,属性是contentMode,值是aspectFit。) – dfd

+0

这不是逻辑。 –

当你调用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) 
    } 
}