【问题标题】:Resize animated GIF file using imagemagick with original FPS使用具有原始 FPS 的 imagemagick 调整动画 GIF 文件的大小
【发布时间】:2018-07-23 12:45:00
【问题描述】:

我想调整动画 gif 文件的大小。我使用了以下命令:

 .\convert.exe "d:\example.gif" -resize 600x400 "d:\exampleResult.gif"

结果 gif 文件似乎比原始文件慢得多。更重要的是,当我在没有任何附加参数的情况下调用 convert 时,结果 gif 仍然比原来的慢:

.\convert.exe "d:\example.gif" "d:\exampleResult.gif"

如何使用原始 FPS 调整 gif 大小?

【问题讨论】:

  • 如果 gif 没有设置延迟,那么不同的查看器可能会设置最小延迟。如果 gif 确实有延迟,那么您可以尝试将其优化为 convert image.gif -coalesce -resize 600x400 -layers optimize output.gif
  • 不幸的是,它没有用。调整大小的 gif 比原来的慢很多。
  • 您的 gif 中是否设置了延迟?另一种方法是使用lcdf.org/gifsicle等工具优化imagemagick创建的gif。发布指向您的原始动画 gif 的链接。还要确定您正在使用的 ImageMagick 的版本和日期以及在什么平台上(可能是您的语法中的 Windows,但是 Windows 的版本)?

标签: imagemagick imagemagick-convert


【解决方案1】:

您可以使用

获得两帧之间的当前延迟

identify -verbose example.gif | grep Delay.

这应该会给您类似Delay: nx100 的信息,这意味着在原始 gif 中的两帧之间存在 n/100th 秒延迟。

现在,如果您想拥有相同的帧速率,那么只需按照以下方式进行操作

convert -delay n example.gif example_new.gif

如果您希望帧速率更快,请使用

convert -delay m example.gif example_same.gif 其中m < n

反之亦然,帧速率较慢。

希望对你有帮助。

【讨论】:

  • 报告中没有延迟。不知道怎么贴。它的巨大
  • 好吧,我只是在我的 Linux 上的 gif 上尝试了它,它确实返回了我上面提到的内容。你能确认你正在执行相同的命令吗?
  • 我在你的 gif 上也试过了,它确实有效。我希望您使用的是 Linux/OSX,或者更确切地说是任何基于 linux 的操作系统。
猜你喜欢
  • 2012-04-16
  • 2017-11-22
  • 2013-08-28
  • 2014-05-25
  • 2011-08-09
  • 2011-08-31
  • 1970-01-01
  • 2012-09-07
  • 2011-06-10
相关资源
最近更新 更多