java - java可以加载透明图像吗?

标签 java image swing jpanel transparency

我有一个具有透明度的 PNG 图像。我使用该格式是因为只有 PNG 可以支持透明度和 Alpha 蒙版。

我的目标是用这个图像绘制一个JPanel,并让透明区域具有底层面板的颜色,并最终用图像做一些动画。

无论我遇到什么问题,在 JPanel 上加载和绘制时,透明区域都会变成纯白色。

那么java不支持透明图像吗?

class imgpanel extends JPanel{
BufferedImage image,backg;
imgpanel(){
    try {
              image = ImageIO.read(new File("theimage.png"));
              backg = ImageIO.read(new File("backimage.png"));
           } catch (IOException ex) {
                System.out.println("No image found");
   }
    setPreferredSize(new Dimension(400,300));
}
 @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(backg,0,0,null);
        g.drawImage(image, 0, 0, null);
}
}

因此,我将透明的“图像”绘制到不透明的“背景图像”上

最佳答案

是的,没问题,不要使用调色板、索引颜色。

尝试一下,图像是否真的是透明的,颜色是否有 alpha 分量。 例如,使用 test.html:

<html>
<body>
<div style="background: url(backimage.png)"><img src="theimage.png"></div>
</body>
</html>

关于java - java可以加载透明图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18743790/

相关文章:

java - 日期,字符串,格式java,android日期选择器

java - Zookeeper - 跟随领导者时出现异常 java.lang.IllegalArgumentException

java - Worklight : how to set use addGlobalHeader for WL. Client.invokeProcedure 调用

php - getimagesize 函数不起作用

java - 了解 Swing 中的绘画

java - 在 dynamodb 中存储 JSON 的可能方法

javascript - 有没有办法让用户在上传到服务器之前查看他们要上传客户端的图像?

c++ - 如何在 SDL2 中连接多个纹理?

java - JButton 表java

java - 显示 GUI 问题