我正在使用Imagemagick将gif转换为相应的jpgs系列,我试图确定每个jpg何时发生在一个系列中。
从How do I detect an animated GIF's ticks per second?: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
和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
...
任何人都可以翻译此输出,它会告诉我帧速率或每帧出现的时间吗?如果你可以使用RMagick使它工作,可以获得额外的分数。
答案 0 :(得分:10)
有并发症。首先,您需要使用%T
和%s
转义来查看帧数和延迟(厘秒),而不是香草identify
命令。其次,从一帧到下一帧的延迟会有所不同,因此您需要准备好处理动画GIF从头到尾没有统一“帧速率”的情况。
以下是一个示例命令:identify -format "Frame %s: %Tcs\n" A.gif
欲了解更多信息: