Я хотел бы обработать в пакетном режиме, изменяют размер и преобразовывают в 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
который обрабатывает в пакетном режиме хорошо, но полупрозрачные пиксели являются насыщенным цветом, который довольно ужасен, когда строка, как предполагается, исчезает в альфу; существует ли способ зафиксировать это?
Вы могли использовать 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
.