Изображение из библиотеки iPhone фото уменьшается при выборе - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь реализовать небольшой инструмент для управления фотографиями на iPhone. В настоящее время я использую как симулятор, так и iPhone 7 с iOS 13.5.1.

Я заметил, что когда я копирую фотографию из Ma c в симулятор или через iCloud к устройству, размеры после выбора его в моем приложении сильно отличаются от того, что приложение MacOS Photos сообщает мне, что они должны быть.

Пример:

Панорама в MacOS Photos с размерами 14204 × 3628 пикселей экспортируется как исходная версия. Finder показывает те же размеры. Файл изображения скопирован в симулятор с помощью перетаскивания и открыт моим приложением с UIImagePickerController: 2048 x 523 пикселей. Панорама скопирована на устройство через iCloud и открыта моим приложением с помощью UIImagePickerController: 4096 x 1046

. Я действительно хотел бы открыть изображение с его реальными размерами, как показано в Finder и Photos. В настоящее время я использую следующий код:

@IBAction func btnAddProjectPressed(_ sender: Any) {
    if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
        imagePicker.delegate = self
        imagePicker.sourceType = .photoLibrary
        imagePicker.allowsEditing = false

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

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    self.dismiss(animated: true, completion: { () -> Void in
    })
    
    pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
    imageView.image = image
 }

UPDATE : Мне удалось получить немасштабированное изображение, используя значение .phAsset из словаря info, загрузив «реальное» изображение с помощью PHImageManager. Однако это выводит сообщение

Ошибка, возвращенная демоном: Error Domain = com.apple.accounts Code = 7 "(null)"

Эта проблема описана в здесь много вопросов ( например, этот ), и я не мог найти решение. Даже образец проекта Apple выводит эту ошибку и не показывает никаких фотографий или альбомов.

Однако объединение UIImagePickerController и PHImageManager, похоже, сводит это к предупреждению, так что я действительно получаю полную размер изображения.

...