2

我有一个带有方框图标的 JLabel。我在 Photoshop 中创建图标的图像。这是一个 png-24 图像,背景已完全擦除。

但是当在深色背景上移动时,您可以看到背景不是完全透明的:

图片


编辑#2:

图像是透明的。我什至浏览了 Photoshop 教程,以确保我以正确的方式创建透明图像。问题似乎与 Java(和 JLabels)有关。

我该如何解决?

4

2 回答 2

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);
}
于 2010-11-18T02:49:07.160 回答
1

您可以尝试使用 GIF 格式并相应地设置 alpha 值。我现在看不到你的图像。好吧,请确保您创建的图像是透明的。否则,您将无法根据需要获得它。

制作透明图像的示例指南:LINK

于 2010-11-18T03:03:10.433 回答