フリーウェアでシミュレーション結果アニメーションを作る

gnuplot + perl + imagemagick 編

<< Prev - Index - Next >>

2. GIFアニメーションを作る

■ あとは、imagemagick 内にある、convert というコマンドで、アニメーションgifを作ってみましょう。

convert は、ある画像ファイルを別フォーマットの画像ファイルにするコマンドで、通常は、

convert image01.png image01.jpg image01.png という画像から、image01.jpg を作る

というように使います。convertは、複数の画像をまとめることができて、出力先のファイルがgifの場合には、gifアニメーションを作成します。

$ cd GIFSEQUENCE
$ convert -delay 10 -loop 0 sequence???.png gifanim.gif

■ オプションの -delay は、再生の待ち時間(1/100秒単位) の設定で、-loop は連続再生する場合の回数になります。このオプションをつけて再生回数を0にすると、無限ループになります。

■ 以上の手続きで作った 10ステップ分の gif animation です。


■ ラベルの追加やキーの表示の設定、y-z面の図にするなどの設定は gnuplot 上で行えます。
また、図の余計な部分のトリミングなどは、convertのオプション設定を使って実行できます。


2.1 Image Magick による簡単な処理

■ 画像の情報を知るにはidentifyというコマンドを使います。
$ identify trim0.png
trim0.png PNG  640x480 640x480+0+0 8-bit PseudoClass 106c 5.35kb
この場合では画種はPNGで横640x縦480ピクセル、サイズは5.35キロバイトということにな ります。

■ 画像の余白を自動で取り除くには-trimオプションを使います。周囲の同一色の部分を自動で切り取ります。
$ convert trim0.png -trim trim1.png
trim0.pngtrim1.png
トリム前トリム後

■ 実は、trimでは画像ビューワ上では余白がなくなっているように見えても実際にはもとの画像の情報が残っています。トリミング後の画像をidentifyで見ると
$ identify trim1.png
trim1.png PNG 466x452 640x480+100+12 8-bit PseudoClass 106c 4.49kb
のようになっています。これは640x480ピクセルの画像の左上から横100、縦12ピクセルず らして466x452ピクセル分の情報を使うという意味になっています。余白を完全に切り取るときは、そのような平行移動情報を取り除く +repage オプションを追加します。
$ convert trim0.png -trim +repage trim1.png
■ gifアニメーションを作るときにできるだけ画質を落とさないようにするためには
$ convert -quality 100 -delay 10 -loop 0 sequence???.png gifanim.gif
のようにqualityオプションをつけます。値はファイルサイズと品質の兼ね合いで決めます。

■ gnuplot, Imagemagick に関しては、解説文書はウェブ上に数多くあるので、それらを参考にしてください。

<< Prev - Index - Next >>
inserted by FC2 system