Наверх

PNG компрессия и iOS приложения

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

На первый взгляд, использование такого инструмента как ImageOptim кажется хорошей идеей. Он перемалывает изображения, срезая лишние байты с каждого файла, помогая вашему приложению быстрее скачиваться и запускаться. Вещи, стоящие вашего внимания и усилий.

Теперь откроем Xcode. В рамках увеличения производительности в iOS приложениях, Xcode повторно сжимает PNG файлы. В результате кропотливой работы Xcode изображения перестраиваются и теряется эффект от ImageOptim (почитайте статью от Jeff Lamarche, если вам интересно чем конкретно занимается Xcode в этот момент).

Чтобы получить реальные результаты, я сохранил семь разных файлов в Photoshop, используя Save As и Save For Web, а так же Save For Web с пред обработкой ImageOptim и пост обработкой тоже (иногда повторный пропуск через ImageOptim может помочь). Изображения были выбраны в различных качествах — некоторые из них были маленькие иконки с прозрачным фоном, некоторые — большие непрозрачные изображения для Retina. Я не ставил никакой особой научной цели, но большой диапазон был покрыт.

Каждый бар на следующем графике показывает размер изображения в байтах. Различные методы дают различные результаты, и ImageOptim, безусловно, помогает выбить еще несколько байт.
PNG компрессия
Индексированное изображение было создано с помощью команды Save For Web в PNG-8 формате, так что оно имеет только 256 цветов (не рекомендуется). Я использовал данную опцию просто чтобы посмотреть обработает ли Xcode PNG-8 файлы, также как PNG-24 (PNG файлы в полном цвете, являются типичными в iOS разработке).

Default@2x NT является дубликатом Default@2x умолчанию @ 2x, но с выключенной опцией Transparency в Save For Web диалоге.

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

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

Все тесты проводились с использованием ImageOptim 1.2.5, Photoshop CS5 и Xcode 4.2.1. ImageOptim имеет кучу инструментов для оптимизации PNG, таких как OptiPNG, Pngcrush, AdvPNG и PNGOUT.

Конечно можно отключить сжатие PNG файлов в Xcode, но вы должны иметь веские причины для этого. На сайте ImageOptim есть инструкции о том, как это сделать.

Если у вас есть желание и время, можете даже использовать AdvPNG для создания PNG изображений специально для iOS.

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

Оставить комментарий