2012-09-12 26 views

回答

1

你最好的選擇是到c使用已經支持背景透明度的格式來創建你的圖紙,比如PNG 32位。

半透明和透明度選項只能改變圖像的整個透明通道,不能根據其顏色對各個位進行操作。

+1

'LookupOp',提到[這裏](http://stackoverflow.com/a/4383798/230513)可能被用來改變現有的背景顏色。 – trashgod

+0

嘿,這是一個很好的發現,謝謝! –

+0

它對'AlphaComposite'進行了有益的補充,建議[這裏](http://stackoverflow.com/a/12384425/230513)和[這裏]提到(http://stackoverflow.com/a/12392808/230513) 。 – trashgod

1

擴展在mKorbel的建議,使用AlphaComposite,你不能AlphaComposite.Clear模式,但你可以清除一個BufferedImage的背景。例如,

Graphics2D dstG = dstImage.createGraphics(); 
dstG.setComposite(AlphaComposite.Clear); 
dstG.fillRect(0, 0, WIDTH, HEIGHT); 

在不同的模式繪畫隨後將離開上漆像素是透明的。

更多細節可參見answer

+0

嗯,真的..,謝謝 – mKorbel