Проблема оптимизации PNG с использованием инструмента pngcrush
У меня есть несколько запросов на инструмент "pngcrush".
В то время как процесс сборки xcode,
- Я устанавливаю опцию "Сжать файлы PNG" в "ДА", а затем проверил двоичный файл и размер изображения.
- Затем в другом процессе сборки я устанавливаю параметр "Сжать файлы PNG" на "НЕТ", а затем снова проверяю двоичный файл и размер изображения.
Но нет никакой разницы между 1. и 2. в двоичном / размер изображения.
Почему инструмент "pngcrush" не оптимизирует файлы png?
Любая помощь будет отличной.
Заранее спасибо.
С уважением, Девендра
3 ответа
Файлы конвертируются только тогда, когда приложение создано для устройства. Симулятор iOS получает обычные PNG.
Тем не менее, преобразование XCode может сделать изображения больше и медленнее загружать, поэтому я предлагаю отключить Compress PNG Files
Опция и оптимизация изображений PNG вручную.
Обратите внимание, что любое изображение, добавленное в 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 файлы" на НЕТ
Установите Imageoptim (доступно на http://imageoptim.com/)
Перейти к терминалу и перейти к исходному каталогу
Используйте команду
open -a ImageOptim .
Он автоматически просматривает источник изображений и сжимает их (не беспокойтесь, оптимизируйте изображения и в.xcassets)
Теперь убедитесь, что вы подождали некоторое время и все индикаторы прогресса светятся красным
Очистить, построить и архивировать, вы увидите, что полученный файл ipa гораздо меньше, чем оригинал.
И последнее, но не менее важное: после этого, когда вы добавляете изображения в проект, просто добавляйте оптимизированные. это так же просто, как перетаскивание перетаскивания изображений в imageOptim для оптимизации.
Также при добавлении рассмотрите возможность добавления изображений в ресурсы, которые непосредственно используются на уровне приложения, но не на уровне данных. если изображение, которое планируется добавить, используется на уровне данных, добавьте его непосредственно в проект и не создавайте для него запись актива, таким образом, по крайней мере, эти изображения останутся недействительными.
Счастливого Сжатия Всем:)
Инструмент pngcrush запускается процессом сборки Xcode, когда он копирует.png по назначению в комплект приложения. Этот процесс запускается для ваших файлов.png, когда вы устанавливаете опцию "Сжатие файлов PNG" на ДА. (Имейте в виду, что этот инструмент иногда увеличивает размер ваших изображений!) Я бы не ожидал, что размер ваших изображений.png будет одинаковым, если на них будет запущен pngcrush.
Процесс pngcrush также будет манипулировать.png, так что он может быть открыт только в iOS. Так что, если вы не можете просматривать свои изображения в комплекте приложений, это хороший признак того, что pngcrush фактически запускался на них.
Еще одна вещь, чтобы иметь в виду; иногда содержимое пакета приложения в папке сборки не будет напрямую соответствовать вашим файлам в вашем проекте XCode. Таким образом, иногда рекомендуется очистить папку сборки вручную.