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 クラスライブラリ
のクラスです。
戻る