2010-08-27 20 views
6

我正在尋找一種方法來檢測使用Linux的動畫GIF的(平均)幀速率。 PHP的Imagick類似乎提供了這種功能,但我寧願避免安裝大量庫來使其運行。如何檢測每秒動畫GIF的刻度?

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

有沒有一種簡單的方法來做到這一點?

+7

如何是一個庫 – 2010-08-27 22:58:49

+2

@Bears:這是一個鮮爲人知的事實是,ImageMagick庫約重2,106磅(當源代碼打印在重量級8.5x11in紙在12-PT與在每邊;-) – Josh 2010-08-27 23:03:18

+0

@Josh 1" 邊距:單雙面打印或翻番?什麼字體?_INKJET或激光??? _ GET與它MAN! – 2010-08-27 23:15:27

回答

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動畫沒有一個全球性的幀速率,他們之間有一個單獨的框架。

+0

更好!這就是我所追求的。 – 2010-08-27 23:22:08

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