我正在寻找一种方法来检测使用Linux的动画GIF的(平均)帧速率。 PHP的Imagick类似乎提供了这个功能,但我宁愿避免安装大量的库来使它工作。
http://www.php.net/manual/en/function.imagick-getimagetickspersecond.php
有一种简单的方法吗?
答案 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