【发布时间】:2012-07-15 23:26:29
【问题描述】:
嗯,我的游戏引擎运行流畅,在所有机器上都完美无缺!在继续向引擎添加功能之前,我想增强引擎的图形功能。我关注的是褪色和混合图像。我需要一些平滑的过渡,所以在不使用任何 3rd 方库(如 OpenGL)的情况下,如何在绘制图形对象时对图像应用不透明度?
感谢任何回复:D
【问题讨论】:
标签: java graphics opacity transition fading
嗯,我的游戏引擎运行流畅,在所有机器上都完美无缺!在继续向引擎添加功能之前,我想增强引擎的图形功能。我关注的是褪色和混合图像。我需要一些平滑的过渡,所以在不使用任何 3rd 方库(如 OpenGL)的情况下,如何在绘制图形对象时对图像应用不透明度?
感谢任何回复:D
【问题讨论】:
标签: java graphics opacity transition fading
也许使用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);
}
您可以将 alpha 设置为您想要的任何透明度级别(介于 0.0 和 1.0 之间)。在这种情况下,您可能希望使用AlphaComposite.SRC_OVER 能够覆盖透明图像并查看其背后,除非您要进行其他操作(如果是这样,您可以轻松地在第一个上看到所有可用的常量及其解释提供链接)。
【讨论】: