3

Imagemagick を使用して、gif を対応する一連の jpg に変換しています。各 jpg がいつシリーズで発生するかを判断しようとしています。

1 秒あたりのアニメーション 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

そして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を使用して機能させることができれば、追加のポイント。

4

1 に答える 1

10

合併症があります。まず、バニラコマンドではなく、%T%sエスケープを使用してフレーム番号と遅延(センチ秒単位)を確認する必要があります。identify次に、あるフレームから次のフレームへの遅延は変化するため、アニメーションGIFの「フレームレート」が端から端まで統一されていない場合に対処する準備をする必要があります。

コマンドの例を次に示します。identify -format "Frame %s: %Tcs\n" A.gif

詳細情報:

  1. http://imagemagick.org/Usage/anim_basics/
  2. http://imagemagick.org/script/escape.php
于 2013-01-19T20:22:06.207 に答える