如何检测每秒动画GIF的刻度?

时间:2010-08-27 22:57:33

标签: php linux imagemagick gif

我正在寻找一种方法来检测使用Linux的动画GIF的(平均)帧速率。 PHP的Imagick类似乎提供了这个功能,但我宁愿避免安装大量的库来使它工作。

http://www.php.net/manual/en/function.imagick-getimagetickspersecond.php

有一种简单的方法吗?

2 个答案:

答案 0 :(得分:8)

我认为ImageMagick真的是你最好的选择。

动画GIF的identify filename.gif就是这样:

gif.gif[1] GIF 350x350 350x350+0+0 8-bit PseudoClass 256c 145KB 0.000u 0:00.003
gif.gif[2] GIF 350x350 350x350+0+0 8-bit PseudoClass 256c 145KB 0.000u 0:00.006
gif.gif[3] GIF 350x350 350x350+0+0 8-bit PseudoClass 256c 145KB 0.000u 0:00.010

这不会给你帧速率 - 这是,因为动画GIF没有全局帧速率,它们在帧之间有一个单独的帧速率。

答案 1 :(得分:5)

您可以自定义ImageMagick identify应向您显示的信息格式:

identify \
      -format "%T ticks:  %f: Frame[%s]  %m %wx%h %P%O %r %z-bit\n" \
       anim.gif

这应该可以解决问题。

示例输出:

 50 ticks:  anim.gif: Frame[0]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[1]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[2]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[3]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[4]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 50 ticks:  anim.gif: Frame[5]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[6]  GIF 1x1 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[7]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[8]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[9]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
 10 ticks:  anim.gif: Frame[10]  GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit
相关问题