ゲームエンジンはスムーズに、すべてのマシンで完璧に動作しています。エンジンに機能を追加し続ける前に、エンジンのグラフィカル機能を強化したいと思います。私が焦点を当てているのは、画像のフェードとブレンドです。スムーズな遷移が必要になるので、OpenGLなどのサードパーティライブラリを使用せずに、グラフィックスオブジェクトに描画するときに画像に不透明度を適用するにはどうすればよいですか?
返信ありがとうございます:D
ゲームエンジンはスムーズに、すべてのマシンで完璧に動作しています。エンジンに機能を追加し続ける前に、エンジンのグラフィカル機能を強化したいと思います。私が焦点を当てているのは、画像のフェードとブレンドです。スムーズな遷移が必要になるので、OpenGLなどのサードパーティライブラリを使用せずに、グラフィックスオブジェクトに描画するときに画像に不透明度を適用するにはどうすればよいですか?
返信ありがとうございます:D
おそらく、AlphaCompositeを使用することがあなたが探しているものである可能性がありますか?
Image image = new Image(...);
float alpha = 0.5;
@Override
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);
g2d.setComposite(composite);
g2d.drawImage(image, 0, 0, null);
}
アルファを希望する透明度レベル(0.0から1.0の間)に設定します。この場合、AlphaComposite.SRC_OVERを使用して、透明な画像をオーバーレイし、その背後を見ることができるようにする必要があります(そうであれば、最初に利用可能なすべての定数とその説明を簡単に確認できます)。リンクが提供されます)。