linux - 使用 ImageMagick 创建 GIF 图像时出错:异常过多和闪烁问题
问题描述
我有一个包含大量 png 文件的目录,其结构如下:
image1.png
image2.png
...
image3372.png
我正在尝试使用ImageMagick创建 GIF 图像,因此在终端中我输入:
sudo apt-get install imagemagick
convert -delay 0.01 -loop 0 *.png myimage.gif
但我有下一个错误:
...
convert-im6.q16: DistributedPixelCache '127.0.0.1' @ error/distribute-cache.c
/ConnectPixelCacheServer/244.
convert-im6.q16: cache resources exhausted `Image119.png' @ error/cache.c/OpenPixelCache/3984.
convert-im6.q16: too many exceptions (exception processing suspended).
此外,它会闪烁。我认为这是因为它将 image18 和 image180 视为连续的。我该如何解决?
我正在运行 Ubuntu 18
解决方案
- 100 帧/秒是多余的。您可以以 10 帧/秒的速度运行并将图像计数除以 10(或至少标准的 25 帧/秒并除以 4)。
*.png
由您的外壳按字母顺序扩展和排序,因此如果您希望帧在其编号序列中,请用 0 填充名称:
for n in {1..3372} ; ; do mv image$n.png image$(printf "%04d" $n).png ; done
convert
(和其他 IM 命令)似乎使用内存缓存并具有其他自我强制限制(您可以使用 IM 的identify
命令列出):
>>> identify -list resource
Resource limits:
Width: 16KP
Height: 16KP
List length: 18.446744EP
Area: 128MP
Memory: 256MiB
Map: 512MiB
Disk: 1GiB
File: 768
Thread: 8
Throttle: 0
Time: unlimited
您可以提高一次运行的限制:
convert -limit memory 1000 ...
推荐阅读
- c# - 使用 ITextSharp(旧版本)将多个文件合并为 pdf
- git - 规范化 Git 花括号格式(同一行与下一行)合并约定
- angular - 将 HttpClient 的结果推送到 BehaviorSubject 并观察 UI 的变化
- php - 用于 WordPress 的 PHP 片段,用于获取所有产品子类别
- php - PhpStorm/Symfony - 导航到树枝文件
- poco-libraries - 如何链接使用 poco 库的 Android Qt 应用程序
- r - r 在循环中追加/绑定包含在不同列表中的相同表
- javascript - 将许多用户选择的数组求和以显示总数(角度)
- cypress - 赛普拉斯仪表板的 Slack 集成,不使用 CI
- jquery - 系统地为每个 A 添加不同的 CSS 边框,即使它们在子 div 中