2012-07-17 76 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