【问题标题】:How to add an image to all frames of a GIF using Imagemagick?如何使用 Imagemagick 将图像添加到 GIF 的所有帧?
【发布时间】:2017-01-12 23:08:25
【问题描述】:

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

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

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

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

但我被困在如何对所有帧进行批处理 composite 操作。有人知道如何实现这一目标吗?我希望有一个使用 Imagemagick 的单行解决方案。

【问题讨论】:

    标签: image imagemagick


    【解决方案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
    

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

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

    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
    

    【讨论】:

    • 感谢@Mark,该解决方案看起来很棒。我可以弄清楚混合以使事情变得整洁。
    猜你喜欢
    • 2020-07-02
    • 2012-11-25
    • 2020-10-18
    • 2021-11-19
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2012-09-03
    • 2013-03-13
    相关资源
    最近更新 更多