Java のアニメーション手法 その1


Java でのアニメーションの方法とその高速化手法を説明します。

デモ / 方法 1 / ソースファイル / 戻る / トップページ


Java Applet 使用可能なブラウザでご覧ください。


方法 1

各 ImageFilter のコンストラクタに指定するパラメーター値を 少しずつ変化させて作った画像を 連続させて表示することでアニメーションさせる方法です。 上のデモはその方法でアニメーションさせたものです。
 
この方法の欠点は処理速度が最も遅い事です。
 
この方法で重要なのは MediaTracker を使ってフィルタリング完了を待つ事と 表示後に画像のリソースを開放する事です。
 
例えば、原画像を baseImage、使いたい ImageFilter を filter とすると
MediaTracker tracker=new MediaTracker(component);
Image image=component.createImage(new FilteredImageSource( baseImage.getSource(),filter));
tracker.addImage(image,0);
 
try {tracker.waitForAll();}
catch (InterruptedException e) {}
として、フィルタリング完了を待ちます。 そして画像表示後に
image.flush();
として画像のリソースを開放します。

デモのソ−スファイル

ご自由に使って頂いて結構です。
 
animation.animation.BasicAnimation
方法 1 を実際に行うクラスです。
 
net.antun.lib.awt.image.WaveImageFilter
方法 1 で使われている WaveImageFilter です。 ImageFilter クラスライブラリ のクラスです。
 
net.antun.lib.awt.image.SinglepassImageFilter
WaveImageFilter クラスの親クラスです。 ImageFilter クラスライブラリ のクラスです。

戻る