ImageView показать отредактированное изображение - PullRequest
0 голосов
/ 26 января 2020

В моем проекте у меня есть UIButton & UIImageView. Когда кнопка нажата, она представляет UIImagePickerController. Вот так выглядит мой код и пользовательский интерфейс.

class RegisterViewController: UIViewController {

  @IBOutlet weak var profileImageView: UIImageView!

  @IBAction func changeImageProfileButtonPressed() {

    let picker = UIImagePickerController()
    picker.sourceType = .photoLibrary
    picker.allowsEditing = true
    picker.delegate = self

    present(picker, animated: true, completion: nil)
  }
}

extension RegisterViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {

  func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    dismiss(animated: true, completion: nil)
  }

  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    guard let image = info[.originalImage] as? UIImage else { return }

    guard let editedImage = info[.editedImage] as? UIImage else { return }

    print("Original Image Size: ", image.size)
    print("Edited Image Size: ", editedImage.size)

    profileImageView.image = editedImage

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

Вот здесь и начинается моя проблема. Размер отредактированного изображения намного меньше исходного размера, когда я выбираю изображение из средства выбора изображений. Вот что печатает консоль: Размер исходного изображения: (960.0, 1200.0) Размер отредактированного изображения: (321.0, 321.0). Теперь я установил profileImageView.image = editedImage, и это выглядит хорошо. Однако позже я хотел бы сохранить изображение из profileImageView в Firebase. Я уверен, что когда я сохраню изображение, оно будет 321x321 вместо 960x1200. Поэтому, когда я получаю изображение из FireBase и отображаю его на большом экране, оно будет выглядеть размытым. Я могу просто сохранить исходное изображение размером 960x1200, но при получении изображения оно не будет выглядеть как отредактированное изображение.

Итак, как мне сохранить исходное изображение и затем отобразить его в profileImageView, чтобы оно выглядело как отредактированное изображение?

...