使用 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
我想将 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