2012-03-21 14 views
2

.gifイメージがJavascriptで1回再生するのに要する時間を簡単に把握できますか?.gifアニメーションの長さをミリ秒単位で決定する方法

+0

を? –

+0

私は実際に値をプログラム的に必要としないので、環境についてはあまり気にしません.GIFがミリ秒で1回再生するのに要するおおよその時間を判断するだけで済みます。しかし、私はjavascriptでこれから戻ってくる数字を実装しています。 – j00b

+0

このことをプログラムで行うことに心配しないのであれば、この質問は話題にはなりません。 –

答えて

4

ImageMagickからidentifyコマンドは、この情報を与えることができる:

$ identify -verbose file.gif | grep 'Elapsed time' 

    Elapsed time: 0:01.080 
    Elapsed time: 0:01.150 
    Elapsed time: 0:01.230 

...

Elapsed time: 0:04.250 
    Elapsed time: 0:04.330 
    Elapsed time: 0:04.399 
    Elapsed time: 0:04.480 

アニメーションの合計長さでなければならない印刷最後の行。

+1

3回実行すると、経過時間:0:02.780、経過時間:0:02.840、経過時間:0:02.810となります。 – Prinzhorn

2

回答が正しいとは限りません。 Elapsed timeは、ImageMagickがアニメーションを実行している間は現実世界の時計のようです。あなたが望むのは各フレームのDelayフィールドで、それらを合計します。

$ identify -verbose fail.gif | grep Delay 

Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 15x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 
Delay: 33x100 
Delay: 10x100 
Delay: 10x100 
Delay: 10x100 

ここで、33x100は、330msの遅延です。

マークSetchell編

あなたが実際に%Tエスケープとやや外科(grepを使用するよりも)遅延パラメータを抽出することができます。

enter image description here

identify -format "%T\n" animation.gif 

8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
11 
11 
11 
11 
11 
11 
11 
26 

とGET合計はawkとなります。

identify -format "%T\n" anomation.gif | awk '{t+=$0} END{print t " centiseconds"}' 
183 centiseconds 
+1

もう少し追加しました。気にしないといいですね。あまりにも投票している! –

+0

@ MarkSetchellありがとうございます。また、「センチ秒」という用語の場合) – Prinzhorn

0

私はImageMagick identifyを試しましたが、それは私に正しい期間を与えませんでした。

私はそれは秒単位で期間をプリントアウトしますExifTool

exiftool -Duration image.gif

を使用して別の信頼できる方法を見つけました:どのようなプログラミング言語/プラットフォーム/環境で

Duration : 0.48 s

関連する問題