我正在寻找一种使用Linux检测动画GIF的(平均)帧率的方法。PHP的Imagick类似乎提供了这个功能,但我更愿意避免安装大量库来使其工作。
http://www.php.net/manual/en/function.imagick-getimagetickspersecond.php
是否有简单的方法可以做到这一点?
http://www.php.net/manual/en/function.imagick-getimagetickspersecond.php
是否有简单的方法可以做到这一点?
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没有全局帧速率,它们在帧之间有一个单独的帧速率。
您可以自定义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