ImageMagick конвертировать GIF с проблемой прозрачности - PullRequest
7 голосов
/ 03 августа 2011

Я написал скрипт для добавления водяных знаков к изображениям на моем сайте. Все работает нормально для 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 Ответ

2 голосов
/ 05 октября 2011

Проблема в том, что ваш -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 для получения дополнительной информации.

...