我正在尝试通过覆盖绘制组件来绘制另一个图像。
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
class imgframe{
JFrame f;
imgframe(){
f= new JFrame("Image Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setPreferredSize(new Dimension(400,300));
imgpanel p= new imgpanel();
f.getContentPane().add(p);
f.pack();
f.setVisible(true);
}
}
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);
}
}
class imgrun{
public static void main(String args[]){
imgframe imf= new imgframe();
}
}
我的第一个图像称为图像是 PNG 格式,并且在某些区域具有透明度。第二个称为 backimage 的图像是全黑图像。
我的输出具有白色而不是黑色的透明区域。声明也是如此g.drawImage(image, 0, 0, null);
在没有透明度的情况下将一张图像绘制在另一张图像上?