(iphone) загрузка png в UIImage занимает больше памяти, чем двоичный размер png? - PullRequest
1 голос
/ 06 января 2011

Я загружаю 100s 4k-8k png файлов (разрешение 768 * 768), всего менее 1 мг.

Хотя я конвертирую их в UIImage и время от времени изменяю / объединяю изображения,
Я был удивлен, увидев, что устройство ipad умирает из-за предупреждения памяти из-за загрузки изображений.

Преобразуется вUIImage занимает гораздо больше памяти, чем фактический размер файла в байтах?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 06 января 2011

Это потому, что png распаковываются в память, занимая больше памяти.Каждое распакованное изображение займет до 768 * 768 * 4 = 2,25 МБ памяти.

0 голосов
/ 06 января 2011

Возможно, вы захотите рассмотреть, как вы загружаете изображения, если они не все для одновременного отображения.Здесь и везде есть много тем, например, этот поток .

UIImage imageNamed будет кэшировать изображение (и иногда кэширование Apple слегка глючит, не высвобождается должным образом), пока UIImage imageWithData не будет, поэтому, когда больше не будет отображаться, память будет освобождена.В зависимости от обстоятельств у каждого есть свои преимущества и недостатки, поэтому постарайтесь лучше понять различия.

...