如何使用Imagemagick将图像添加到GIF的所有帧?

时间:2017-01-12 09:56:12

标签: image imagemagick

我想使用闪电图像和个人照片为照片创建闪电效果。例如,使用以下闪电图像:

enter image description here

我想使用Imagemagick将熊猫放在gif的所有帧中:

enter image description here

我尝试使用以下命令提取所有帧:

convert -coalesce lightning.gif out%05d.pgm

但我仍然坚持如何对所有帧进行批处理composite操作。谁会知道如何实现这一目标?我希望使用Imagemagick有一个单行解决方案。

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上-coalesce分隔帧,我认为将它们重新组合在一起的关键因素是可以使用的 MIFF (Magick图像文件格式)流式传输多个图像。

所以,在这里,我将所有单独的合成帧从for循环内部流式传输到循环外的最终convert,将它们全部重新组合在一起:

convert lightning.gif -coalesce frames-%03d.gif

for f in frame*gif; do
   convert $f -gravity south \( panda.jpg -resize 50% \) \
      -compose colordodge -composite miff:-
done | convert -delay 80 miff:-  anim.gif

enter image description here

选择合适的混合模式是另一个问题!

作为一个单行,看起来像这样:

for f in frame*gif; do convert $f -gravity south \( panda.jpg -resize 50% \) -compose colordodge -composite miff:- ; done | convert -delay 80 miff:-  anim.gif