Массовое преобразование файлов PNG-24 в файлы PNG-8 с лучшим качеством

10168
Gavin

Кто-нибудь может порекомендовать хороший метод массового преобразования большого количества файлов PNG-24 в PNG-8 с минимальной потерей качества и сохранением прозрачности?

Я пробовал ImageMagick, но получаемые изображения были не такими четкими, как хотелось бы. Используя Paint.NET, я смог добиться гораздо лучших результатов, но, насколько я знаю, я не могу выполнить массовый процесс с этим инструментом.

Настройки, которые я использовал с ImageMagick на случай, если есть лучшие варианты: convert file.png -depth 4 file-output.png

Я также играл с OptiPNG, но я не обнаружил, чтобы убедиться, что выходные изображения - PNG-8.

7

4 ответа на вопрос

6
Kornel

pngquant как раз и является инструментом для этого. Он генерирует палитры лучше, чем ImageMagick .

pngquant --quality=0-90 *.png 

Это преобразует все файлы png в текущем каталоге и автоматически выбирает количество цветов для достижения качества, аналогичного 90% -ному качеству JPEG.

(если он не принимает --qualityпереключение, это означает, что у вас ужасно устаревшая некачественная версия, и вы должны обновить ее).

Добавьте `--force --ext .png`, чтобы перезаписать исходные файлы. redburn 10 лет назад 1
Я сравню это с результатами optipng в ближайшее время и отмечу один или другой как ответ в зависимости от сравнения результатов. Gavin 8 лет назад 0
2
vartec

GIMP хорошо работает, оптимизируя сокращенные палитры. Он имеетрежим --batch и может быть в сценарии. Также имеет несколько привязок, так что вы можете написать, например, скрипт GIMP на Python .

Спасибо vartec - пока я изучал, как писать сценарии для GIMP, я наткнулся на этот замечательный инструмент, который упоминался как плагин для GIMP (но работает автономно) - [RIOT] (http://luci.criosweb.ro/ бунт /) Gavin 13 лет назад 0
1
Gavin

Я нашел этот замечательный инструмент в своем поиске - RIOT - Radical Image Optimization Tool

Делает все, что мне нужно, и позволяет вам увидеть сравнение изображений до и после, прежде чем выполнять пакетный процесс.

Обновить

В последних версиях RIOT появилась ошибка, из-за которой некоторые изображения выводились в оттенках серого - http://luci.criosweb.ro/riot/bbpress/topic.php?id=471.

0
Gavin

As a replacement for RIOT I've started using optipng via the following command line to process a whole directory on Windows:

for /r %f in (*.png) do "C:\optipng-0.7.5-win32\optipng.exe" -o3 -strip all "%f"