我有一個帶有盒子圖標的JLabel。我在photoshop中創建圖標的圖像。這是一個背景完全擦除的PNG-24圖像。Java - JLabel背景不完全透明?
但是,當在深色背景的頂部移動,你可以看到,背景是不完全透明:
編輯#2:
圖像是透明的。我甚至通過Photoshop教程,以確保我正確地創建一個透明的圖像。這個問題似乎與Java(和JLabels)有關。
我該如何解決這個問題?
我有一個帶有盒子圖標的JLabel。我在photoshop中創建圖標的圖像。這是一個背景完全擦除的PNG-24圖像。Java - JLabel背景不完全透明?
但是,當在深色背景的頂部移動,你可以看到,背景是不完全透明:
編輯#2:
圖像是透明的。我甚至通過Photoshop教程,以確保我正確地創建一個透明的圖像。這個問題似乎與Java(和JLabels)有關。
我該如何解決這個問題?
我測試過你的圖像,它不透明。當然這就是原因。
<html>
<body style="background-color:#99cccc;">
<table>
<tr>
<th>your one isn't transparent</th>
<th>this one is</th></tr>
<tr>
<td><img src="http://i.stack.imgur.com/BvYxM.png" style="border:5px solid green;"/></td>
<td><img src="http://www.axdn.com/redist/axpssp_logo.png" style="border:5px solid green;"/></td></tr>
</table>
</body>
</html>
@Gabe:粘貼到一個html文件並加載到瀏覽器中。這顯然不是與Java有關的任何問題。
這裏有一個java證明你的圖像不透明,並且一個合適的透明PNG工作正常。
public static void main(String[] args) throws Throwable
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container cp = frame.getContentPane();
cp.setBackground(Color.RED);
cp.setLayout(new FlowLayout());
cp.add(new JLabel(new ImageIcon(new URL("http://i.stack.imgur.com/BvYxM.png"))));
cp.add(new JLabel(new ImageIcon(new URL("http://www.axdn.com/redist/axpssp_logo.png"))));
frame.pack();
frame.setVisible(true);
}
那我該如何解決呢?我刪除所有在Photoshop中的背景?看起來像Java處理圖像的方式不同。 – 2010-11-18 04:04:50
使用File/Save for Web以保存具有透明度的PNG。 – msell 2010-11-18 07:59:40
我是。確實如此。 – 2010-11-18 08:42:23
如果圖像*** ***結束透明那麼爲什麼沒有出現在HTML頁面透明? – pstanton 2010-11-18 22:40:31