我有一个带有方框图标的JLabel。我在photoshop中创建了图标的图像。这是一张png-24图像,背景已完全删除。
但是当在深色背景上移动时,您可以看到背景不是完全透明的:
编辑#2:
图像透明。我甚至经历过photoshop教程,以确保我以正确的方式创建透明图像。问题似乎与Java(和JLabels)有关。
如何解决此问题?
答案 0 :(得分:4)
我测试了你的图像,它不是透明的。当然这就是原因。
<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);
}
答案 1 :(得分:1)
您可以尝试使用GIF格式并相应地设置Alpha值。 我现在看不到你的照片。 好吧,确保您正在创建的图像是透明的。 否则你根本不需要它。
制作透明图片的示例指南:LINK