Уменьшить разрядность файлов PNG из командной строки - PullRequest
4 голосов
/ 25 августа 2009

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

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

Ответы [ 2 ]

4 голосов
/ 25 августа 2009
  1. Установка финка

  2. Скажите "fink install imagemagick" (может быть "ImageMagick")

  3. "convert -depth 16 old / foo.png new / foo.png"

  4. Если это сделало то, что вы хотите, оберните его в поисковик и будьте счастливы Если нет, скажите «convert -help» и RTF-ImageMagick-M. :)

  5. Необязательно: "fink install pngcrush" и запускайте его как второй проход после прохода преобразования.

2 голосов
/ 25 августа 2009

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

Из списка возможностей на сайте PNG:

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

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

...