Почему размер изображения увеличивается после представления UIImagePNGR?
У меня есть файл изображения в приложении фотографий iphone.
Я взял его в свой MacBook, через Airdrop и проверил размер изображения = 1,9 МБ
Я сохранил то же изображение в приложении "Файлы" на iphone и проверил размер изображения там = 1,9 МБ
Я взял то же изображение в свое приложение черезUIImagePickerController
,
- Используемый
UIImagePNGRepresentation
и распечатал количество данных / число байтов = 15,8 МБ - Используемый
UIImageJPEGRepresentation
с коэффициентами сжатия 1.0 и распечатанными данными / счетчиками байт = 5,4 МБ - Используемый
UIImagePNGRepresentation
и сохранил его в локальном (DocumentsDirectory) и проверил размер файла = 15,8 МБ - Используемый
UIImageJPEGRepresentation
с обжатием 1.0 и сохранил его в локальном (DocumentsDirectory) и проверил размер файла = 5,4 МБ
Теперь мой вопрос заключается в том, почему UIImagePNGRepresentation
ИЛИ ЖЕ UIImageJPEGRepresentation
увеличивает размер файла до такого большого размера? Я даже загрузил это изображение на свой сервер и, очевидно, получал изображения большего размера. Я хотел загрузить данное изображение на свой сервер с оригинальным качеством, но я не хочу, чтобы это изображение большого размера (поскольку его фактический размер на устройстве совершенно другой), есть ли другой способ, с помощью которого мы можем предотвратить размер и качество исходного изображения и то и другое?.
1 ответ
Давайте возьмем этот пример из сессии WWDC 2018 - 416_ios_memory_deep_dive. Если размер файла 590 КБ, размер изображения составляет 2048 пикселей x 1536 пикселей. Таким образом, общая память этого изображения составляет 10 МБ (2048 пикселей x 1536 пикселей x 4 байта на пиксель). Для получения дополнительной информации вы можете посмотреть это видео. https://developer.apple.com/videos/play/wwdc2018/416/