描画処理2 - フェード
いろんなサイトの、おいしいところをまとめるシリーズ第2弾。
Javaでフェード処理をするのに一番手っ取り早い方法は、alpha値を操作すること。
しかし、pixel単位での操作は遅すぎ。それでAPIを調べてみると、
単にフェードをするようにaplpha値を変化させるときは、AlphaCompositeのほうが、
パフォーマンスがよいらしい。
public class HogeApplet extends JApplet { float alpha_ = 0.5F; // alpha値 ‥‥ public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha_)); ‥描画処理‥ } }
一次的に変化させるときは、Graphics2D#getComposite() でCompositeを保持しておいて、
後から再セットで戻せばよろしい。
- Hey! Java Programing!
Javaのグラフィック関連の細かい説明があってGood
http://www.mars.dti.ne.jp/~torao/program/graphics/index.html
- たかな工房
いろいろなサンプルプログラムがある。ずばりやりたいことの一覧ですね(泣)
http://www.takana.info/java2/index.htm