在java中混合图像

时间:2012-07-17 03:46:23

标签: java graphics opacity transition fading

好吧,我的游戏引擎运行顺畅,在所有机器上都能完美运行!在继续向引擎添加功能之前,我想增强引擎的图形功能。我关注的是褪色和混合图像。我需要一些平滑过渡,所以不使用像OpenGL这样的第三方库,在绘制图形对象时如何对图像应用不透明度?

感谢任何回复:D

1 个答案:

答案 0 :(得分:1)

也许使用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来覆盖您的透明图像并在其后面查看,除非您想要其他内容(如果是这样,您可以轻松查看所有可用的常量及其解释第一个链接提供)。