Изображение, возвращаемое из UIImagePickerController, выходит за границы изображения, добавляет черную полосу - PullRequest
0 голосов
/ 29 августа 2018

У меня есть пользователи, которые выбирают изображение из UIImagePickerController, и когда я открываю изображение позже, оно имеет черную полосу. Обратите внимание, что изображение не обрезано, средство выбора изображения фактически выходит за границы изображения, где отсутствуют пиксели, и добавляет пустое черное пространство.

Мой код:

@IBAction func selectImageButt(_ sender: Any) {
    let imagepicker = UIImagePickerController()
    imagepicker.allowsEditing = true
    imagepicker.sourceType = .photoLibrary
    imagepicker.delegate = self
    present(imagepicker, animated: true)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let image = info[UIImagePickerControllerEditedImage] as? UIImage {
        testImageView.image = image
    }
    picker.dismiss(animated: true)
}

Результаты следующие:

enter image description here

Примечание. Я попытался изменить contentMode представления изображения для масштабирования, чтобы заполнить, а также заполнить аспект (не подходит). Я не знаю, почему черные полосы добавляются как часть самого изображения. Кто-нибудь может помочь? enter image description here

1 Ответ

0 голосов
/ 27 июня 2019

Я решил эту проблему, используя исходное изображение, если обрезанное изображение находится вне источника

guard let selectedImage = info[.editedImage] as? UIImage else {
        fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
    }

var image = selectedImage
 if let cropRect = info[.cropRect] as? CGRect {
     if cropRect.origin.y < 0 {
          guard let imageOrigin = info[.originalImage] as? UIImage else {
              fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
          }
          image = imageOrigin
      }

 }
...