我试图通过覆盖绘画组件来将一个图像绘制在另一个图像上。
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);
在没有透明度的情况下将一个图像绘制在另一个图像上?“