2012-07-17 81 views
2

嗯,我的游戏引擎运行平稳,并且完美地运行在所有机器上!在我继续为引擎添加功能之前,我想增强引擎的图形功能。我所关注的是淡化和混合图像。我将需要一些平滑过渡,所以如果不使用任何第三方库(如OpenGL),在绘制图形对象时如何将不透明度应用于图像?在java中混合图像

感谢任何答复:d

+0

您可能会发现[如何淡出一个图像并淡入另一个(Java)?](http://stackoverflow.com/a/8594835/1048330)有用。 – tenorsax 2012-07-17 06:10:41

回答

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

+0

:D thx 我可能需要花一些时间来学习这一点。这一定会帮助我。 我假设setComposite只是Graphics2D? – Luft 2012-07-17 06:20:20

+0

据我所知,是的。 – adchilds 2012-07-17 14:35:51