pngcrush: uncrush на Linux?

IOS SDK от Apple использует модифицированную версию pngcrush для преобразования файлов png в пакеты iOS. Их версия также может отменить изменения (используя переключатель "-revert-iphone-optimizations"), но оригинальная версия не может.

Есть ли инструмент, который можно запустить в Linux и отменить оптимизацию iphone?

Благодарю.

2 ответа

Решение

iphone-fixpng работает в Linux. Смотрите это обсуждение, объясняя, что он делает. Я ссылаюсь на web.archive.org, потому что оригинал не работает.

Вы можете выбрать один из следующих способов:

  1. Установите Hackintosh внутри Linux с помощью VirtualBox. установить Xcode внутри него, а затем сделать что-то вроде этого

    $ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -dir uncrushed -revert-iphone-optimizations -q *.png
    

    Это использует модифицированный pngcrush от apple, чтобы отменить его оптимизации. Угадайте, что это будет работать со всеми измельченными PNG. Смотрите это для более обвиняемой команды xcrun

  2. Загрузите iPIN.py из этого блога и выполните как

    $ python ipin.py
    

    Это распакует все файлы из фактического каталога и его подкаталогов. Не беспокойтесь о том, чтобы позвонить дважды, по моему опыту, не испортит уже недробленый pngs. Отсюда вы обнаружите, что ipin.py не деоптимизирует все яблочные png

    Он (ipin.py) не может обрабатывать несколько фрагментов IDAT, не работает с чересстрочными изображениями Adam7 и не исправляет предварительно умноженную альфа.

  3. Используйте специальный двоичный инструмент gnome. Для этого нужно несколько шагов низкого уровня:

    $ git clone https://github.com/hadess/fixpng-thumbnailer.git
    $ cd fixpng-thumbnailer
    $ ./autogen.sh
    $ make
    $ sudo make install
    

    После этого у вас есть новая команда gnome-fixpng-thumbnailer, которая работает следующим образом.

    $ gnome-fixpng-thumbnailer [ВХОДНОЙ ФАЙЛ] [ВЫХОДНОЙ ФАЙЛ]

    Будьте осторожны с этой командой, потому что она портит pngs, если вызывается дважды на одном и том же png.

    Я использую это так:

    $ for file in *.png; do echo "   $file";gnome-fixpng-thumbnailer $file $file; done
    

    Вы догадаетесь, почему повторили имя файла. Это потому, что эта команда может завершиться с ошибкой (без $? С ненулевым значением в случае сбоя), и единственное, что вы получите, - это сообщение "Ошибка ZLib! -3". Это быстрое решение, потому что, как ни странно, вы обнаружите, что ipin.py распаковывает эти файлы.

Прочитайте это для еще одного инструмента вокруг pngdefry. Он предоставляет бесценную информацию обо всем этом - даже его источнике - но я не пробовал себя.

Я надеюсь, что pngcrush впитывает эту функциональность, так что у вас есть все из коробки, по крайней мере, я отправил письмо сопровождающему pngcrush (привет, Гленн).

Другие вопросы по тегам