Подтвердить что ты не робот

Как сделать высококачественное анимированное изображение с помощью imagemagick

Я хочу сделать анимированный gif из этого .png image:

enter image description hereenter image description hereenter image description hereenter image description here

Я делаю это с помощью этой команды:

convert -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

Он сделал анимированный gif успешно, однако выход имеет очень низкое качество и меньше, чем входные изображения:

enter image description here

После некоторого поиска я получил -quality

convert -layers OptimizePlus -delay 25x100 -quality 99 ps1-*.png -loop 0 ps1.gif

Но похоже, что imagemagick просто игнорирует параметр.

4b9b3361

Ответ 1

Проблема в том, что ваши исходные PNG имеют альфа-канал, который не поддерживается GIF. Поэтому вы должны удалить прозрачность из исходных изображений. Поскольку вы имеете дело с несколькими исходными изображениями, вы не можете использовать метод -flatten. С новыми версиями ImageMagick должно работать следующее:

convert -background white -alpha remove -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

Если ваша версия ImageMagick старше 6.7.5, вы можете попробовать:

convert -bordercolor white -border 0 -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

Я получил следующий результат с последней командой:

animation