iOS Swift: UIImage от данных размыто - PullRequest
0 голосов
/ 16 марта 2020

в моем приложении я отображаю картинки из пользовательской библиотеки. Они сохраняются в кэше Core Data и представляются в виде коллекции с UIImage .

Но иногда они размыты, как в следующее изображение:

enter image description here

Первые 2 строки представляют собой изображения, извлеченные из пользовательской библиотеки, последняя строка представляет собой изображения, извлеченные из Интернета (и они в хорошем качестве). Все изображения сохраняются в основных данных.

Это код, в котором я преобразую PHAsset в необработанные данные, а затем сохраняю его в Core Data:

PHImageManager.default().requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: .aspectFit, options: nil) { (image, info) in
     let data = image?.jpegData(compressionQuality: 1)
     let file = MediaFile.newMediaFile(data: data, type: .image)
     localMedia.addMedia(media: file)
 }

и здесь я строю изображение с необработанными данными, извлеченными из основных данных:

func buildImage(fromMedia localMedia: LocalMedia, completion: @escaping (UIImage?) -> ()) {
        bgQueue.async {
            guard let file = localMedia.orderedMediaFiles.first,
                let data = file.data,
                let image = UIImage(data: data)
                else {
                    completion(nil)
                    return
            }
                completion(image)
        }
    }
...