Какой самый быстрый способ загрузить большое изображение на iPhone? - PullRequest
4 голосов
/ 21 января 2010

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

Ответы [ 2 ]

5 голосов
/ 21 января 2010

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

Из документа SDK:

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

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


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

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

[UIImage imageWithContentsOfFile:@"/path/to/your/image.jpg"];
4 голосов
/ 21 января 2010

Загрузка iPhone в формате PNG быстрее , чем в формате JPG , поскольку PNG оптимизируются при подключении в приложении (хотя и не загружаются с пульта дистанционного управления).

Исключение составляет только поваренная книга iPhone от Аддисона Уэсли:

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

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

1017 * Кевин *

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