使用 ImageMagick 和许多图像的 GIF 动画
GIF animation with ImageMagick and many images
我正在尝试使用 ImageMagick 使用多个源 jpg 图像创建 GIF 动画。这是我进行的命令行调用
convert -delay 20 -loop 0 $WDir/*.jpg -resize 20% $WDir/animate.gif
其中 $WDir
是一个 bash 变量,它指向所有图像所在的工作目录。该脚本对于 10 张图像运行良好,但我有 500 多张图像要制作动画。我不想 resize
图像更少,我试图限制内存使用,但这似乎没有帮助。
有人能告诉我如何在不牺牲图像质量的情况下使用内存有限 (16GB) 的机器制作大量图像的动画吗?如果需要在 "chunks" 中完成,那很好,因为我可以编写一个 bash 脚本来完成这项工作,并且 "set it and forget it".
您的 Imagemagick 版本是什么,平台是什么?我假设是 Unix(Linux 或 Mac)。你遇到了什么错误?如果你 运行 内存不足,那么你可以调整你的 policy.xml 文件,这样你就可以使用磁盘而不是 RAM,但处理时间会更长。您可能需要像您所说的那样分批处理。此外,根据您的 OS,图像名称字符串可能会超过 OS 限制(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
我正在尝试使用 ImageMagick 使用多个源 jpg 图像创建 GIF 动画。这是我进行的命令行调用
convert -delay 20 -loop 0 $WDir/*.jpg -resize 20% $WDir/animate.gif
其中 $WDir
是一个 bash 变量,它指向所有图像所在的工作目录。该脚本对于 10 张图像运行良好,但我有 500 多张图像要制作动画。我不想 resize
图像更少,我试图限制内存使用,但这似乎没有帮助。
有人能告诉我如何在不牺牲图像质量的情况下使用内存有限 (16GB) 的机器制作大量图像的动画吗?如果需要在 "chunks" 中完成,那很好,因为我可以编写一个 bash 脚本来完成这项工作,并且 "set it and forget it".
您的 Imagemagick 版本是什么,平台是什么?我假设是 Unix(Linux 或 Mac)。你遇到了什么错误?如果你 运行 内存不足,那么你可以调整你的 policy.xml 文件,这样你就可以使用磁盘而不是 RAM,但处理时间会更长。您可能需要像您所说的那样分批处理。此外,根据您的 OS,图像名称字符串可能会超过 OS 限制(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