【问题标题】:ImageMagick identify reports incorrect GIF frame countImageMagick 识别报告不正确的 GIF 帧数
【发布时间】: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


【解决方案1】:

这根本不是 ImageMagick 问题。
我将图像下载到服务器的代码有问题,总是跳过大约最后 50 个字节。

这太容易错过了,因为它并没有严重影响 GIF 的质量。

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多