将最近10张图片转换为gif文件

时间:2017-03-17 19:17:34

标签: bash imagemagick

我需要使用imagemagick从具有以下结构的图像列表中生成gif文件:

image [00-15].jpg
image [00-45].jpg
image [01-15].jpg
image [01-45].jpg
image [02-15].jpg
image [02-45].jpg
image [03-15].jpg
image [03-45].jpg

但我需要只使用最近的10张图片。如何使用bash脚本解决它?

2 个答案:

答案 0 :(得分:0)

看起来你可以使用ffmpeg。

        For creating a video from many images:

               ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi

       The syntax "foo-%03d.jpeg" specifies to use a decimal number composed of three digits padded with zeroes to express the sequence number. It is the same syntax supported
       by the C printf function, but only formats accepting a normal integer are suitable.

       When importing an image sequence, -i also supports expanding shell-like wildcard patterns (globbing) internally, by selecting the image2-specific "-pattern_type glob"
       option.

       For example, for creating a video from filenames matching the glob pattern "foo-*.jpeg":

               ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi

我使用此工具将视频片段与完整剧集合并。

在本地,我可以通过运行ffmpeg -i %02d.png output.gif获得一个gif,其中我有01.png,02.png,03.png和04.png。你将不得不玩时间和东西的选项,但它是完全可行的。

答案 1 :(得分:0)

不确定我理解你对[]的使用。括号中的括号是否真实?如果没有,那么

convert -delay 50 image*.jpg[-1--10] -loop 0 animation.gif

不幸的是,它会加载你的所有图像并仅使用最后的10个。但是它将使用大量内存来加载所有的jpgs。