ImageMagick конвертировать gif с проблемой прозрачности

Я написал скрипт для добавления водяных знаков на изображения на моем сайте. Все работает нормально для png / jpg, но gif-изображения должны обрабатываться более сложным способом. Мой скрипт:

convert -splice x36 -gravity south -background white image.gif 
-coalesce -gravity SouthEast -geometry +0+0 -background white 
null: watermark-text.png -layers composite new-image.gif

для 95 процентов gif он работает нормально. Но есть примеры, которые приводят к ошибкам. Беспокойство это изображение: image

нормальный кот. Только первый кадр содержит фон (видимые слои в gimp).

enter image description here

это не обычный кот. Есть предложения?

1 ответов


проблема в том, что ваш -splice применяется относительно макета кадров gif, а не макета полного изображения. Сделайте -coalesce во-первых (порядок имеет значение):

convert -coalesce -splice x36 -gravity south -background white image.gif \
-gravity SouthEast -geometry +0+0 -background white \
null: watermark-text.png -layers composite new-image.gif

В разделе " простые модификации анимации" из примеры использования ImageMagick для получения дополнительной информации.