如何为动画GIF添加水印并将2个ImageMagick命令组合在一起?

时间:2012-08-23 21:56:58

标签: windows image image-processing imagemagick

我在使用命令行中的imagemagick的Windows 7计算机上。

以下代码可用于为图像添加水印:

composite                      \
     -watermark 30%            \
     -gravity south            \
      the_watermark.png        \
      pic_to_be_watermaked.png \
      watermark_completed.png

问题是:

  • 当我尝试为动画GIF添加水印时它不起作用
  • 如何将此水印命令与下面的命令一起使用?

此命令获取文件夹“static_images”中的所有PNG,并将它们组合成动画GIF。它还确保图像宽度为350像素,高度保持适当的宽高比。它还为图像提供了一些模糊效果,并将动画的速度设置为4,并确保它无限循环:

convert                         \
   -resize 350x350              \
   -fuzz 1.6%                   \
   -delay 4                     \
   -loop 0                      \
    static_images/*.png         \
   -layers OptimizePlus         \
   -layers OptimizeTransparency \
    animated_gif.gif

问题:

  1. 如何将水印命令与上面的命令结合起来?
  2. 如何让水印命令与动画GIF一起使用?

1 个答案:

答案 0 :(得分:2)

这是您希望看到的结果吗?

Animated GIF with watermark

诀窍是首先为每个PNG源文件添加水印,然后从加水印的PNG创建GIF。

所以这是这两个命令的结果。首先,创建带水印的PNG:

for i in sample_images/000*.png; do   
   convert                                     \
      "${i}"                                   \
      sample_images/the_watermark.png          \
     -gravity south                            \
     -composite                                \
      sample_images/$(basename "${i}")_wm.png;
done

注意,我没有使用您的确切composite命令,因为它没有创建可读的水印,只是在意思区域有些模糊......

其次,将带水印的PNG转换为动画GIF:

convert                         \
   -resize 350x350              \
   -fuzz 1.6%                   \
   -delay 4                     \
   -loop 0                      \
    sample_images/*_wm.png      \
   -layers OptimizePlus         \
   -layers OptimizeTransparency \
    animated_gif.gif      

这是你的意思吗?