如何在另一个图像上绘制一个图像

时间:2013-09-08 15:35:19

标签: java image swing paint bufferedimage

我试图通过覆盖绘画组件来将一个图像绘制在另一个图像上。

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);

也是如此

在没有透明度的情况下将一个图像绘制在另一个图像上?“

0 个答案:

没有答案