Уменьшите разрядность файлов PNG с помощью командной строки
-
19-09-2019 - |
Вопрос
Какую команду или серию команд я мог бы выполнить из 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" и запустить, что в качестве второго прохода после новообращенного прохода