Что должно быть при сжатии при использовании UIImageJPEGRepresentation?

Я хотел бы применить фильтр к фотографии из библиотеки пользователей, а затем записать ее обратно на диск. Я использую UIImageJPEGRepresentation. Эта функция принимает значения UIImage и a compressionQuality между 0.0 и 1.0. Поскольку я хочу сохранить исходное качество, я установил его в 1.0. Но я обнаружил, что на самом деле создается файл изображения, размер которого больше размера файла, чем оригинал, что несколько значительно больше. Я заметил, что в приложении Apple Sample Photo Editing Extension они всегда устанавливают качество до 0,9. Я попробовал это, и он выводит размер файла, близкий к размеру исходного фото файла. Для меня это не имеет смысла. Может кто-нибудь объяснить это? Уместно ли всегда использовать 0,9? Камера iOS сжимает ее, используя это значение, и, следовательно, 0,9 является оригинальным качеством? Или почему нет 0.9 на самом деле 1.0, если нет ничего лучшего качества?

NSData *renderedJPEGData = UIImageJPEGRepresentation(image, 0.9f);

Ответы

Ответ 1

Вы можете преобразовать изображение в PNG-представление для оригинального качества изображения.

UIImagePNGRepresentation(image)