контроллер выбора изображений не может изменить размер квадрата обрезки по умолчанию после нажатия на изображение с iphone - PullRequest
0 голосов
/ 27 декабря 2018

изображение, показывающее контроллер изображения

Как показано на этом рисунке, эта квадратная позиция не изменяется и не изменяет размеры, когда я снимаю изображение с камеры, но оно работает из галереи.Пожалуйста, помогите, как изменить положение квадрата обрезки, чтобы перейти к необходимой части изображения.

используемый код приведен ниже

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 голосов
/ 27 декабря 2018

In 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
...