不确定它是否正确,但我有一个问题,通过使用不同的方式显示差异结果。
我的想法:在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();
}
答案 0 :(得分:0)
原因方法2没有绘制图像的“问题”不会绘制图像,因为source
图像已包含您未绘制的部分。如果这对你有意义(对不起,但真的很难了解你的要求)。