java绘制半透明图片_如何使绘制的图像在Java中透明

本文介绍了如何在Java中利用ImageFilter将PNG图像中的特定颜色转换为透明,从而实现半透明效果。通过创建一个继承自JFrame的SimpleFrame类,展示了一个例子,将白色背景设为透明,并在窗口中同时显示原始和透明处理后的图像。
摘要由CSDN通过智能技术生成

正如另一个提到的答案,最简单的方法可能是简单地使用具有透明背景的PNG图像(您可以使用像GIMP这样的图像编辑器创建这些图像).或者,如果您仅限于具有纯色背景的PNG图像,以下是如何将PNG中的给定颜色(例如白色)更改为透明的示例:

import java.awt.*;

import java.awt.image.*;

import javax.swing.*;

public class SimpleFrame extends JFrame {

JPanel mainPanel = new JPanel() {

ImageIcon originalIcon = new ImageIcon("~/Pictures/apple.png");

ImageFilter filter = new RGBImageFilter() {

int transparentColor = Color.white.getRGB() | 0xFF000000;

public final int filterRGB(int x, int y, int rgb) {

if ((rgb | 0xFF000000) == transparentColor) {

return 0x00FFFFFF & rgb;

} else {

return rgb;

}

}

};

ImageProducer filteredImgProd = new FilteredImageSource(originalIcon.getImage().getSource(), filter);

Image transparentImg = Toolkit.getDefaultToolkit().createImage(filteredImgProd);

public void paintComponent(Graphics g) {

g.setColor(getBackground());

g.fillRect(0, 0, getSize().width, getSize().height);

// draw the original icon

g.drawImage(originalIcon.getImage(), 100, 10, this);

// draw the transparent icon

g.drawImage(transparentImg, 140, 10, this);

}

};

public SimpleFrame() {

super("Transparency Example");

JPanel content = (JPanel)getContentPane();

mainPanel.setBackground(Color.black);

content.add("Center", mainPanel);

}

public static void main(String[] argv) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

SimpleFrame c = new SimpleFrame();

c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

c.setSize(280,100);

c.setVisible(true);

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值