Уменьшите разрядность файлов PNG с помощью командной строки

StackOverflow https://stackoverflow.com/questions/1329873

Вопрос

Какую команду или серию команд я мог бы выполнить из CLI, чтобы рекурсивно обойти дерево каталогов и уменьшить разрядность всех файлов PNG в этом дереве с 24 бит / с до 16 бит /с?Команды должны сохранять альфа-уровень и не должны увеличивать размер файла PNG-файлов - фактически, уменьшение было бы предпочтительнее.

В моем распоряжении есть система на базе OSX, и я знаком с find команда, поэтому я действительно больше заинтересован в том, чтобы найти подходящую команду утилиты PNG.

Это было полезно?

Решение

AFAIK единственным форматом PNG, который поддерживает альфа-слой, является PNG-24;Для приведения PNG к другому формату может потребоваться указать прозрачный цвет в CLUT, что не даст вам желаемого результата.

Из списка функций на веб-сайте PNG:

  • поддержка 8 и 16 бит на выборку (то есть 24 и 48 бит) truecolor
  • полная альфа-прозрачность в 8- и 16-битных режимах, а не просто включение-выключение прозрачности, как в GIF

...который, как я прочитал, означает, что все, кроме PNG-24 или PNG-48, не поддерживает полную альфа-прозрачность.

Другие советы

<Ол>
  • Установить шпик

  • Скажем, "стукач установить ImageMagick" (может быть "ImageMagick")

  • "преобразовать -depth 16 старый / новый / foo.png foo.png"

  • Если это сделал то, что вы хотите, завернуть его в находке вызова и быть счастливым. Если нет, скажем, "конвертировать -help" и RTF-ImageMagick-M. :)

  • Дополнительно:. "Стукач установить Pngcrush" и запустить, что в качестве второго прохода после новообращенного прохода

  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top