3
我正在尋找一種方法來繪製一個帶有灰度顏色的Java中的PNG圖像(帶有Alpha通道),然後覆蓋一個透明顏色,例如Green 75%的不透明度,最重要的是改變顏色。 要清楚,最終的圖像將直接導致在其上方放置透明顏色,並且不會是任何特殊類型混合的結果。上的圖像的頂部在Alpha通道上疊加一個透明顏色的PNG
然後疊加RGB顏色(102,255,0,阿爾法)::
例如,我會得出以下圖像
在圖像上繪製顏色的方法必須是這樣的,它不會干擾屏幕上靠近的其他圖像。這將與Adobe Photoshop的顏色疊加功能類似。兩幅圖像可以有不同的顏色疊加層,但單獨的疊加層不會與彼此相沖突。
感謝leonbloy,我相信使用「SRC_OVER」的AlphaComposit可以解決這個問題,然後我可以使用一種方法將結果保存爲一個新的BufferedImage,這將防止疊加層影響屏幕上的任何其他圖像對象。
我會發布結果,因爲我測試這個。
不清楚你想要做什麼,也沒有嘗試過什麼。你在使用BufferedImage嗎?你讀過 - 是 - [這](http://stackoverflow.com/questions/2318020/merging-two-images)?你想根據頂部圖像的透明度來做一個「正常」的覆蓋,或者你是想實現一個特殊的混合/覆蓋?你看過[AlphaComposite](http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/AlphaComposite.html)嗎? – leonbloy
我的歉意,我會盡量更清楚。我的意圖是按照透明度進行正常疊加。我不以任何方式混合。我並不知道AlphaComposite類,因爲我是Java中2D圖形編程的新手,在我的初始搜索中沒有找到。我查看了AlphaComposite上的[this](http://docs.oracle.com/javase/tutorial/2d/advanced/compositing.html)頁面,看起來好像「SOURCE_OVER」是我正在使用的。 – ubertastic
好的,如果你解決了你的問題,你總是可以自己添加你的解決方案作爲答案並接受它。順便說一句,這與PNG沒有特別的關係,我刪除了這個標籤。 – leonbloy