使用ImageMagick和许多图像的GIF动画

时间:2018-01-09 22:06:26

标签: bash animation imagemagick gif

我正在尝试使用多个源jpg图像使用ImageMagick创建GIF动画。这是我制作的命令行调用

convert -delay 20 -loop 0 $WDir/*.jpg -resize 20% $WDir/animate.gif

其中$WDir是一个bash变量,指向所有图像所在的工作目录。该脚本运行正常,可以说10张图片,但我有500多张想要制作动画的图片。我不想resize图像更少,我试图限制内存使用量,但这似乎没有帮助。

有人能告诉我在使用内存有限(16GB)的机器时,如何在不牺牲图像质量的情况下制作大量图像的动画?如果它需要在“块”中完成,那很好,因为我可以编写一个bash脚本来完成工作并“设置并忘记它”。

1 个答案:

答案 0 :(得分:1)

你的Imagemagick版本是什么?平台是什么?我假设是Unix(Linux或Mac)。你遇到了什么错误?如果内存不足,则可以调整policy.xml文件,以便可以使用磁盘而不是RAM,但处理时间会更长。您可能需要按照您的说法分批处理。此外,根据您的操作系统,图像名称字符串可能超出操作系统限制(Windows的典型值)。

我的建议是使用mogrify处理所有图像,因为它一次处理一个,因此没有显着的RAM使用。使用mogrify调整大小并重新格式化。完成后,您可以将所有GIF加载到RAM中并制作动画。我建议你创建一个新目录来保存mogrify的输出,并使用-path参数指定输出目录。需要首先创建目录。所以

cd to directory holding your input images
mogrify -path yourpath2/newdirectory -format gif -resize 20% *.jpg

然后一旦完成

cd to newdirectory
convert -delay 20 *.gif -loop 0 animate.gif