2017-03-17 56 views
0

我需要使用从以下结构的图像列表ImageMagick的GIF文件生成:最后的10张图像转换成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脚本解决它?

+0

小澄的问题 - 如果抱歉,这听起来很愚蠢:做文件名看起来* *完全相同像'图像[00-15] .jpg',或者使用'[...]'来表示某种范围是多少?添加一个实际图像的小列表可能会很有趣且有用。 –

+0

是文件名看起来就像图像[00-15] .JPG。大约每30分钟添加一个新文件。这就是为什么我要与最后10幅图像创建动画。 – armando85

回答

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。你将不得不玩弄时间和东西的选项,但它完全可行。

0

不知道我是否理解你对[]的使用。括号是否在你的文件名中是真实的?如果没有,那么

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

不幸的是,它会加载所有的图像,并使用只有最后的10,但它会使用大量的内存来加载所有的JPG文件。

+0

是括号内是我的名实。大约每30分钟添加一个新文件。这就是为什么我要与最后10幅图像创建动画。 – armando85

相关问题