размер изображения - PullRequest
3 голосов
/ 02 мая 2010

Время от времени я должен знать ширину и высоту изображений. Я использую следующий код:

UIImage *imageU = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myImage.png"]];

CGFloat imageW = CGImageGetWidth(imageU.CGImage);
CGFloat imageH = CGImageGetHeight(imageU.CGImage);

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

Это должно работать для PNG и JPEG.

спасибо.

Ответы [ 2 ]

1 голос
/ 02 мая 2010

Вы можете проанализировать файл PNG, который содержит информацию о размере в заголовке. См. Получить размер изображения без загрузки в память .

(Кстати, вы можете использовать imageU.size, чтобы получить размер CGSize изображения.)

0 голосов
/ 03 мая 2010

Я не думаю, что вы можете сделать это "бесплатно", говоря с точки зрения использования памяти. Вы можете создать NSInputStream и прочитать / проанализировать данные раздела IHDR (перейдите по ссылке @ KennyTM), а затем отбросить все.

...