【发布时间】:2013-12-30 02:12:15
【问题描述】:
我正在使用 ImageMagick 来处理 GIF 图片。
我的步骤之一是identifying 图像中的帧数。
我通过node-imagemagick(以及后来的gm)调用identify,如下所示:
identify -format '%T,%w,%h ' test.gif
大多数情况下,我正确地获得了 53 个空格分隔的 53 帧值。
但有时我会为同一张 GIF 图片获得 47 或 50 帧(即 53 帧)。
这怎么可能发生?
我同时运行convert -coalesce -append test.gif other.gif,但它不应该触及原始图像,对吧?此外,我检查了原始图像,即使报告了错误的帧数。
我什至无法始终如一地重现这一点。我在哪里寻找问题?
这似乎发生在我同时运行多个 ImageMagick 进程时(在不同的文件上)。
我正在使用 ImageMagick 6.8.7-9 Q16 x86_64 2013-12-11。
有问题的图片:
(但我在其他图片上也遇到过这种情况。)
【问题讨论】:
-
你能把你的图片链接起来吗?
-
@dlemstra:当然,刚刚添加。但是,我在另一张图片上也遇到了这个问题。
-
在格式字符串中添加
%s以获取帧号(“场景”)。也许您可以确定在解码过程中帧是否被丢弃、从前面丢弃或在结束时丢弃。使用-verbose还会转储大量信息,包括每帧的“X of Y”字符串。 -
@Charles:你打败了我!请继续关注,我正在发布解释。
标签: node.js imagemagick gif node-imagemagick imagemagick-identify