Занимаемая памятью область изображений JPG в UIImageView - PullRequest
1 голос
/ 03 января 2012

Я знаю, что PNG-изображения сжимаются и при загрузке в виде UIImages в UIImageView они занимают в памяти гораздо больше, чем исходный файл. Это относится и к изображениям JPG?

1 Ответ

6 голосов
/ 03 января 2012

Краткий ответ: Да.

Длинный ответ: JPEG является схемой сжатия с потерями и может сжимать изображения таким образом, что они на несколько порядков меньше, чем исходное растровое изображение.PNG - это схема сжатия без потерь, и поэтому она не может достичь почти таких же коэффициентов сжатия, как JPEG.

. Из-за этого очень маленький файл JPEG может раздуваться до огромных размеров при распаковке, намного больше, чем любой сопоставимый PNGfile.

Однако следует помнить, что после загрузки изображения в память в виде растрового изображения оно всегда будет занимать предсказуемый объем памяти, независимо от типа загружаемого файла..

Это потому, что растровые изображения используют точный объем памяти на пиксель (фактически неудивительно, что для стандартного 32-битного изображения это 32 бита на пиксель).Таким образом, вы можете легко рассчитать объем памяти, необходимый для вашего изображения (при условии, что это 32-битное изображение), умножив ширину в пикселях на высоту в пикселях и умножив ее на 4 (что составляет 32/8 бит на байт).Это скажет вам, сколько байтов требуется для хранения растровых данных вашего изображения в ОЗУ.

Итак, 32-битное изображение размером 640 x 480 пикселей использует: 640 * 480 * 4 = 1228800 байт, что чуть большеодин мегабайтОбъект UIImage, использующий это растровое изображение в качестве резервного хранилища, добавит к этому небольшое количество служебной информации.

Стоит отметить, что 27-дюймовый дисплей Apple, используемый на iMac и т. Д., Имеет разрешение 2560 x1440. Это работает до 14 мегабайт оперативной памяти, необходимой только для хранения растрового изображения рабочего стола!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...