Добавление водяных знаков в анимированые GIF при помощи ImageMagick
Просто и почти без головной боли
Задача отсюда. Самый простой способ решения:
-coalesce \
-gravity south \
-draw 'image over 0,0 0,0 "watermark.png"' \
result.gif"
image.gif— исходный рисунок;watermark.png— водяные знаки;result.gif— результат
Параметр gravity задаёт местоположение водяных знаков.
Если водяные знаки нужно предварительно обработать (например, подогнать под размер изображения), то команда несколько усложнится (в принципе, то же самое можно выполнить с использованием нескольких команд и использованием временных файлов, но хранение изображений в памяти удобнее):
-resize 100x100
-write mpr:wmark \
+delete \
image.gif \
-coalesce \
-gravity north \
-draw 'image over 0,0 0,0 "mpr:wmark"' \
result.gif
В данном случае watermark.png масштабируется с сохранением пропорций до 100×100, записывается в память (-write mpr:wmark), удаляется из последовательности изображений (+delete), в последовательность добавляются все кадры image.gif, вся последовательность собирается в одно изображение (-coalesce), на котором сверху (-gravity north) выводится преобразованный watermark.png (-draw 'image over 0,0 0,0 "mpr:wmark"'), а результат помещается в result.gif.
Оба варианта имеют одно достоинство: в качестве исходного изображения можно использовать любой файл, не обязательно .gif.
Из недостатков: не все версии ImageMagick нормально обрабатывают gif-файлы. Например, ImageMagick 6.4.5.4 (который идёт в Ubuntu Jaunty) может из такого изображения:
и таких водяных знаков:
сделать такой результат:
В версии 6.5.1.0 эта ошибка уже исправлена.
Вложения:
- Результат (image/gif)
- Водяные знаки (image/png)
- Исходное изображение (image/gif)
Сен
2009
Комментарии к статье «Добавление водяных знаков в анимированые GIF при помощи ImageMagick» »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Добавление водяных знаков в анимированые GIF при помощи ImageMagick»
गते गते पारगते पारसंगते बोधि स्वाहा



Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

