пакетное “преобразование” в jpg с хорошей альфой сглаживается

Я хотел бы обработать в пакетном режиме, изменяют размер и преобразовывают в jpg несколько png файлов. Но некоторые пиксели прозрачны, и некоторые наполовину прозрачны; я хотел бы, чтобы прозрачные были белыми, и полупрозрачные для белого наполовину смешанный с цветом.

У меня есть две половины решений:

convert file.png -resize 1200x1200  -background white -flatten  file.jpg

который работает хорошо, но только для одного файла; так есть ли простой способ обработать команду "преобразования" в пакетном режиме? Я хочу, чтобы мои файлы сохранили свои имена, которые не пронумерованы (img001.png, img002.png, и т.д.), но описательные (room.png, horse.png, и т.д.)... Или:

mogrify -resize 1200x1200 -format jpg -background "#FFFFFF" *.png

который обрабатывает в пакетном режиме хорошо, но полупрозрачные пиксели являются насыщенным цветом, который довольно ужасен, когда строка, как предполагается, исчезает в альфу; существует ли способ зафиксировать это?

0
задан 20 January 2016 в 18:29

1 ответ

Вы могли использовать a for цикл:

for f in ./*.png; do convert "$f" -resize -background white -flatten "${f%.*}.jpg"; done

Это будет воздействовать на каждый файл с именем, заканчивающимся в .png в текущем каталоге. Каждый распространяется вокруг на цикле, подобранное имя файла читается в переменную $f; для массирования этой информации в выходное имя файла вышеупомянутая команда использует замену параметра.

${var%Pattern} - Удалите из $var самая короткая часть $Pattern это соответствует бэкэнду $var.

${var%%Pattern} - Удалите из $var самая длинная часть $Pattern это соответствует бэкэнду $var.

0
ответ дан 26 July 2019 в 09:17

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

Похожие вопросы: