Как предотвратить преобразование команды imagemagick в масштабирование изображения?
Я пытаюсь сделать спрайт-листы из анимированных GIF-файлов. Спрайты для моего GPS, и каждый кадр должен быть точно 80x80 пикселей.
Я использовал эту команду:
convert -resize 80x80 input.gif g.png
который даст вам N кадров в gif, перечисленных как: gN.png.
Что я понял, используя силу GIMP, так это то, что изображения были масштабированы в какой-то момент, а это то, чего я не хочу. На прилагаемом рисунке показан раздел размером 80x80 пикселей, где следующий спрайт перекрывает область, которая должна быть только первой.
Самая следующая строка в моем сценарии:
convert +append g-*.png $outputFile
который может иметь роль в этом... Я не уверен.
Полный исходный код скрипта:
#!/bin/bash
#set -vx
# Takes an image via an argument, converts it to the sprite style my gps takes.
# PNG image must be exactly 2880x150 or 2881x160 pixels in size. individual sprites, ar 80x80 px
mkdir -p test2
rm test2/*.png
n=`identify -format "%n\n" $1 | head -1`
m=`expr $n / 2`
outputFile=out`date +%s`.png
#outputFile=out.png
echo "N: " + $n
echo "M: " + $m
convert -resize 80x80 $1 test2/g.png
convert +append test2/g-*.png $outputFile
#convert -resize 2880x150 $outputFile
#montage test2/g-$m.png $outputFile
1 ответ
Хорошо, я думаю, что получил, благодаря этому посту об обмене стека Unix & Linux и чтению о функции расширения на веб-сайте imagemagick.
Все мои фоны прозрачны, так что танцующая девушка в этом случае не закрывает карту. Расширение - это прямая настройка размера изображения, когда дополнительное пространство заполняется цветом или прозрачностью, а избыток усекается.
Я изменил первую команду преобразования на:
convert -background none -extent 80x80 $1 test2/g.png