2010-01-21 3 views
4

Должен ли я использовать UIImage или CGImage? Png или Jpg? Я прочитал документ и попробовал разные вещи, но не заметил значительного улучшения. Загрузка изображения может занять 1 хорошую секунду, которая кажется медленнойКакой самый быстрый способ загрузить большое изображение на iPhone?

ответ

5

UIImage - всего лишь обертка ObjC CGImage, поэтому они одинаковы.

С SDK документ:

Вы должны избегать создания объектов UIImage, которые больше, чем 1024 х 1024 в размере. Помимо большого объема памяти, которое будет потреблять такое изображение, вы можете столкнуться с проблемами при использовании изображения в качестве текстуры в OpenGL ES или при рисовании изображения на вид или слой. Это ограничение размера не применяется, если вы выполняете манипуляции на основе кода, например, изменяя размер изображения более 1024 x 1024 пикселей, рисуя его в графическом контексте с поддержкой растровой графики. Фактически, вам может потребоваться изменить размер изображения таким образом (или разбить его на несколько меньших изображений), чтобы привлечь его к одному из ваших представлений.

Если у вас есть большое изображение, вы можете попробовать использовать UIWebView для уменьшения потребления памяти.


время, чтобы загрузить изображение имеет 2 части: время, чтобы распаковать изображение (относящиеся к выбору JPG или PNG) и время, чтобы сделать изображение.

Для распаковки, я хотел бы предложить вам профиль простого утверждения

[UIImage imageWithContentsOfFile:@"/path/to/your/image.jpg"]; 
4

Это быстрее для iPhone, чтобы загрузить PNGs чем JPGs потому PNGs оптимизирована, когда в комплекте приложения (хотя, не загружается от удаленного).

кроме от Addison Уэсли iPhone Cookbook:..

«Xcode автоматически оптимизирует ваш PNG изображение с помощью утилиты Pngcrush поставляется с SDK (Вы найдете программу в папках платформы iPhoneOS в/Developer Run это из командной строки с -iphoneswitch для преобразования стандартных файлов PNG в iPhone-форматированные.) По этой причине используйте PNG-изображения в приложениях iPhone, где это возможно, в качестве предпочтительного формата изображения ».

Кроме того, PNG является форматом без потерь и JPGs являются потерями. По этим причинам Apple выбрала этот формат.

Кевин
+0

Да, я знал об оптимизации PNG с Xcode, но что о случае, когда вам необходимо загрузить в формате PNG от различных источников (веб, фото галереи). Тогда они не оптимизированы, и это может быть довольно медленным: -/ – CodeFlakes

+0

В основном это правда, что динамически загруженные (веб-и т. Д.) Фотографии не оптимизируются с помощью инструмента Apple. Тем не менее, это по-прежнему самый мудрый выбор, так как ваши изображения будут выглядеть безупречно (и по-прежнему будут довольно небольшими, чтобы сохранить пропускную способность сети). В общем, мне гораздо повезло с PNG, чем с JPG. –

+0

Я сравнивал это и [Xcode изображения были ** медленнее **] (http://imageoptim.com/xcode.html), чем стандартные изображения PNG, оптимизированные с использованием других инструментов. Размер файла (диск ввода/вывода?) Был более важным, чем байты.Я только сравнил PNG с PNG, но я думаю, что значительно меньший JPEG-файл будет загружаться быстрее. – Kornel

Смежные вопросы