2009-08-03 37 views
3

我有一個Java圖形系統,其允許通過指定多個圖像,其可以具有物體被「牆紙」(相對)複雜的對準和調整選項施加。多個圖像組合成用於以後繪畫的單個圖像,具有阿爾法混合

爲了充分發揮功能(特別是在功耗極低的設備上),我在第一次繪製壁紙時將圖像繪製到內部圖像上,然後將該複合圖像複製到目標圖形上下文以使其進入屏幕。僅當對象被調整大小時纔會重新創建組合,因此後續重繪的唯一工作是將裁剪區域從組合複製到目標圖形上下文。

解決方案的工作真的很好,只是當我有alpha通道透明的PNG圖片畫的複合材料時,alpha通道丟失 - 這是複合材料具有的所有像素完全不透明。因此,隨後複製到屏幕上的圖形上下文無法讓壁紙對象顯示後面的內容。

我還是設法使用RGBImageFilter篩選出完全透明的像素,但我不覺得這有一個解決方案,使混合透明度的工作。

沒有人知道的一種方法可以與畫圖像的α信道保留,並且如果組合的兩個像素具有α值重疊?

回答

3

你使用什麼類型的圖片爲合成圖像?

您應該使用一個BufferedImage,並設置它的類型來TYPE_INT_ARGB允許透明度。

+0

我剛纔使用java.awt.component.createImage()。將研究使用BufferedImage並讓你知道它是怎麼回事。 – 2009-08-03 19:29:46