如何使用Imagemagick确定GIF的帧率?

bro*_*wep 3 frame-rate imagemagick gif

我正在使用Imagemagick将gif转换为相应的jpgs系列,我试图确定每个jpg何时发生在一个系列中.

被盗如何检测每秒动画GIF的刻度?:identify -format "%T ticks: %f: Frame[%s] %m %wx%h %P%O %r %z-bit\n" tree.gif

4 ticks:  tree.gif: Frame[0]  GIF 247x175 247x175+0+0 PseudoClassRGBMatte 8-bit
4 ticks:  tree.gif: Frame[1]  GIF 247x175 247x175+0+0 PseudoClassRGBMatte 8-bit
4 ticks:  tree.gif: Frame[2]  GIF 247x175 247x175+0+0 PseudoClassRGBMatte 8-bit
4 ticks:  tree.gif: Frame[3]  GIF 247x175 247x175+0+0 PseudoClassRGBMatte 8-bit
4 ticks:  tree.gif: Frame[4]  GIF 247x175 247x175+0+0 PseudoClassRGBMatte 8-bit
4 ticks:  tree.gif: Frame[5]  GIF 247x175 247x175+0+0 PseudoClassRGBMatte 8-bit
Run Code Online (Sandbox Code Playgroud)

identify tree.gif给了我

tree.gif[0] GIF 247x175 247x175+0+0 8-bit PseudoClass 256c 1.923MB 0.000u 0:00.000
tree.gif[1] GIF 247x175 247x175+0+0 8-bit PseudoClass 256c 1.923MB 0.000u 0:00.000
tree.gif[2] GIF 247x175 247x175+0+0 8-bit PseudoClass 256c 1.923MB 0.000u 0:00.000
tree.gif[3] GIF 247x175 247x175+0+0 8-bit PseudoClass 256c 1.923MB 0.000u 0:00.000
tree.gif[4] GIF 247x175 247x175+0+0 8-bit PseudoClass 256c 1.923MB 0.000u 0:00.010
tree.gif[5] GIF 247x175 247x175+0+0 8-bit PseudoClass 256c 1.923MB 0.000u 0:00.010
tree.gif[6] GIF 247x175 247x175+0+0 8-bit PseudoClass 256c 1.923MB 0.000u 0:00.010
...
Run Code Online (Sandbox Code Playgroud)

任何人都可以翻译这个输出,告诉我帧速率或每帧出现的时间?如果你可以使用RMagick使它工作额外的点.

小智 10

有并发症.首先,你需要使用%T%s转义来查看帧号和延迟(以厘秒为单位),而不是vanilla identify命令.其次,从一帧到下一帧的延迟会有所不同,因此您需要准备好处理动画GIF从头到尾没有统一的"帧速率"的情况.

这是一个示例命令: identify -format "Frame %s: %Tcs\n" A.gif

欲了解更多信息:

  1. http://imagemagick.org/Usage/anim_basics/
  2. http://imagemagick.org/script/escape.php