Проблема оптимизации PNG с использованием инструмента pngcrush - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть несколько запросов на инструмент "pngcrush".

Во время процесса сборки xcode,

  1. Я устанавливаю параметр «Сжать файлы PNG» на «ДА», а затем проверил двоичный файл и размер изображения.
  2. Затем в моем другом процессе сборки я устанавливаю параметр «Сжать файлы PNG» на «НЕТ», а затем снова проверяю двоичный файл и размер изображения.

Но нет разницы между 1. и 2. в двоичном / размер изображения.

Почему инструмент "pngcrush" не оптимизирует файлы png?

Любая помощь будет отличной.

Заранее спасибо.

С уважением, Devendra

Ответы [ 3 ]

4 голосов
/ 01 апреля 2012

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

Однако, Преобразование XCode может сделать изображения больше и медленнее загружать , поэтому я предлагаю отключить опцию Compress PNG Files и оптимизировать изображения PNG вручную.

2 голосов
/ 29 апреля 2014

Обратите внимание, что любое изображение, добавленное в Images.xcassets, по-прежнему сжимается независимо от флага «Сжать файлы PNG». Следовательно, если вы пытаетесь сохранить одинаковые размеры файлов для изображений, добавленных в Images.xcassets, это невозможно.

Теперь перейдем к PNGCrush, это инструмент командной строки с открытым исходным кодом, только что связанный с xcode, и xcode использует его для сжатия изображений с помощью него. Однако pngcrush сжимает путем очистки ненужных фрагментов и воссоздания png-изображения для достижения максимального качества, поэтому сжатые изображения могут быть выше оригиналов.

Есть много других утилит для сжатия. однако людям в мире Mac повезло объединить все инструменты в один для лучшего. ImageOptim легко интегрирует лучшие инструменты оптимизации PNGOUT, Zopfli, Pngcrush, AdvPNG, расширенный OptiPNG, JpegOptim, jpegrescan, jpegtran и Gifsicle. Также с Imageoptim вам больше не нужно конвертировать jpg-to-png перед добавлением в приложение. Jpgs также оптимизируются с помощью оптимизатора изображения.

Для достижения наилучшего размера пачки предпочтительно выполнить следующие действия:

  • Clean-Build-Archive-Export и обратите внимание на размер файла ipa.

  • Установите «Сжатие файлов PNG» на NO

  • Установить Imageoptim (доступно на http://imageoptim.com/)

  • Перейти к терминалу и перейти к исходному каталогу

  • Использовать команду open -a ImageOptim .

  • Он автоматически просматривает источник изображений и сжимает их (не беспокойтесь, оптимизирует изображения и в .xcassets)

  • Теперь убедитесь, что вы подождали некоторое время и все индикаторы прогресса светятся красным

  • Очистка, сборка и архивирование. Вы увидите, что полученный файл ipa намного меньше оригинального.

  • И последнее, но не менее важное: после этого, когда вы добавляете изображения в проект, обязательно добавляйте оптимизированные. это так же просто, как перетаскивание перетаскивания изображений в imageOptim для оптимизации.

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

Счастливое Сжатие Всех:)

1 голос
/ 15 февраля 2012

Инструмент pngcrush запускается процессом сборки Xcode, когда он копирует .png по назначению в комплекте приложений.Этот процесс запускается для ваших файлов .png, когда вы устанавливаете опцию «Сжатие файлов PNG» на ДА.(Имейте в виду, что этот инструмент иногда увеличивает размер ваших изображений!) Я не ожидал бы, что размер ваших изображений .png будет одинаковым, если на них будет запущен pngcrush.

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

Еще одна вещь, о которой следует помнить;иногда содержимое пакета приложения в папке сборки не будет напрямую соответствовать вашим файлам в вашем проекте XCode.Поэтому иногда рекомендуется очистить папку сборки вручную.

...