使用 ffmpeg 或 imagemagick 将选定的 png 图像转换为 gif

Selected png images to gif using ffmpeg or imagemagick

我想将 png 转换为 gif,我想说明我想合并哪些帧 例如:frame1.png 和 frame2.png。 我试过使用 ffmpeg -i frames/%03d.png -vf fps=20 logo.gif 但它正在考虑该目录中的所有图像,但我只希望该目录中的两个图像包含在我要创建的 gif 中。提前谢谢你。

只用你想要的:

magick -delay 80 nice1.png nice37.png animated.gif

通过解释和进一步的示例,我可以像这样在 14 个步骤中制作一个红色和一个蓝色框架并在两者之间变形 - 总共制作 16 个框架:

magick -size 20x100 xc:red xc:blue -morph 14 frame-%02d.png

如果我并排附加这些帧,您可以看到它们全部:

magick frame* +append side-by-side.png

我可以在 shell:

中列出它们
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-00.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-01.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-02.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-03.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-04.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-05.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-06.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-07.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-08.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-09.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-10.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-11.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-12.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-13.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-14.png
-rw-r--r--     1 mark  staff       278 28 Apr 13:45 frame-15.png

如果我现在想select一些制作GIF动画,我可以使用shell的“大括号扩展”来select 某些:

ls frame-0{2,3,9}.png
frame-02.png    frame-03.png    frame-09.png

或者shell的“范围扩展”到select一个连续的范围:

ls frame-1[2-4].png
frame-12.png    frame-13.png    frame-14.png

或者shell的"通配符扩展":

ls frame-1?.png
frame-10.png    frame-11.png    frame-12.png    frame-13.png    frame-14.png    frame-15.png

magick 的工作方式与 ls 相同,因此我可以 select 像这样的动画 GIF 的几帧:

magick -delay 80 frame-0{2,4}.png frame-1*.png animated.gif