图像输出无法显示相同的输出结果

时间:2014-01-18 20:43:15

标签: image graph bufferedimage imageicon drawimage

不确定它是否正确,但我有一个问题,通过使用不同的方式显示差异结果。

我的想法:在2.png(大图片)上放置“Really original.png”(小图片)图片。

这两个代码都运行正常,但如果我试图注释掉method1的话 g.drawImage(image, 0, 0, null);它只会显示“Really Original.png”这一部分,而其他部分都是黑色的。但是为什么method2没有这个问题?

我也混淆g.drawImage(Image img,, x, y, Image img,);在这里img将是小图片(Really original.png)???和x,y是大图像(2.png),我想在那里放小图片?

方法1:

ImageIcon icon = new ImageIcon("C:/TEMP/2.png");
image = icon.getImage();
ImageIcon icon2 = new ImageIcon("C:/TEMP/Really Original.png");
image2 = icon2.getImage();

BufferedImage bufferedImage = new BufferedImage(icon.getIconWidth(),
        icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);

Graphics g = bufferedImage.getGraphics();
g.drawImage(image, 0, 0, null);
g.drawImage(image2, 0, icon.getIconHeight()-200, null);

方法2:

try
{
    File origFile = new File("C:/TEMP/2.png");
    ImageIcon icon = new ImageIcon(origFile.getPath());
     source = ImageIO.read(origFile);
     logo = ImageIO.read(new File("C:/TEMP/Really Original.png"));

    Graphics g = source.getGraphics();
    g.drawImage(logo, 0, icon.getIconHeight()-200, null);
}
catch (Exception e)
{
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

原因方法2没有绘制图像的“问题”不会绘制图像,因为source图像已包含您未绘制的部分。如果这对你有意义(对不起,但真的很难了解你的要求)。