从iPhone单击图像后,图像选择器控制器无法更改默认的裁剪正方形大小

时间:2018-12-27 15:53:24

标签: ios iphone swift uiimagepickercontroller

image showing the imagepickercontroller

如该图所示,当我从相机拍摄图片时,该正方形位置没有改变或调整大小,但在图库中工作。请帮助更改裁剪正方形的位置以转到图像的所需部分。

使用的代码如下

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if let  image = info[UIImagePickerControllerOriginalImage] as? UIImage
    {
        print(image.size)
        let croppedImage = info[UIImagePickerControllerEditedImage] as? UIImage
        print(croppedImage ?? "")
        let cropRect = (info[UIImagePickerControllerCropRect]! as AnyObject).cgRectValue
        print(cropRect?.size ?? "")
        let _ = UIImage.cropImage(image: image, toRect: CGRect.init(x: 0, y: 0, w: self.imgProfile.bounds.width, h: self.imgProfile.bounds.width))
        print(image.size)
        self.imgProfile.image = croppedImage
        profileImgUpdated = true

    }
    self.dismiss(animated: true, completion: nil)
}

func openCamera(){
    self.imagePicker.sourceType = .camera
    self.imagePicker.allowsEditing = true
    self.imagePicker.delegate = self
    self.present(imagePicker, animated: true)
}

func openPhotoLibrary() {
    self.imagePicker.sourceType = .photoLibrary
    self.imagePicker.allowsEditing = true
    self.imagePicker.delegate = self
    self.present(imagePicker, animated: true)
}

1 个答案:

答案 0 :(得分:0)

Swift 4.2 中已使用didFinishPickingMediaWithInfo info: [String : Any],请尝试使用

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
    if let editedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
        self.imgProfile.image = editedImage
    } else if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
        self.imgProfile.image = image
    }
    self.dismiss(animated: true, completion: nil)
}

要启用编辑,

let picker = UIImagePickerController()
picker.allowsEditing = true