我有两个不同大小的GIF。我希望能够将一个动画GIF放置在特定位置的静态背景GIF上,同时将文本添加到结果中。我是ImageMagick世界的新手,请帮忙。
我试图获得以下结果,其中狗贴在一个单独的GIF中。
答案 0 :(得分:1)
如果您的两个动画没有相同的延迟和帧数,请参阅https://www.imagemagick.org/Usage/anim_mods/#merging。
如果您的动画具有相同的延迟和帧数,则可以执行(unix语法):
convert skyblue.gif \
null: \
\( morph_anim_1pt.gif -coalesce \) \
-gravity northwest -geometry +20+20 -compose over -layers composite \
null: \
\( morph_anim_5pts.gif -coalesce \) \
-gravity southeast -geometry +20+20 -compose over -layers composite \
-layers optimize \
result.gif
请参阅https://www.imagemagick.org/Usage/anim_mods/#composite及后续部分。
答案 1 :(得分:1)
也许这更像你想要的。 unix语法中的Imagemagick命令行代码:
背景动画有3帧,前景1有11帧。所以我重复背景4次并删除最后一帧,因此背景总共有11帧。我合并动画并使用-annotate为每个帧添加文本。然后我使用-layers composite将前景动画叠加到背景上。
背景:
前景:
convert -delay 20 \
\( glitter_blue_tiled.gif glitter_blue_tiled.gif \
glitter_blue_tiled.gif glitter_blue_tiled.gif \
-coalesce \
+delete \
-font arial -pointsize 28 -fill black -gravity north \
-annotate +0+20 "TESTING" \) \
null: \
\( coalesced_k.gif -coalesce \) \
-gravity south -geometry +0+20 \
-compose over \
-layers composite \
-layers optimize \
-loop 0 \
result2.gif