Java将图像合并为一个
我有2个Java将图像合并为一个,java,image,bufferedimage,Java,Image,Bufferedimage,我有2个buffereImage,我想把一个放在另一个上面(像这样的层),下面是我的代码: private void组合图像(列表图像列表、字符串组合图像)引发IOException{ BuffereImage a=ImageIO.read(新文件(imageList.get(0));//imageList保存所有图像的路径 BuffereImage b=ImageIO.read(新文件(imageList.get(1)); BuffereImage c=新的BuffereImage(a.get
buffereImage
,我想把一个放在另一个上面(像这样的层),下面是我的代码:
private void组合图像(列表图像列表、字符串组合图像)引发IOException{
BuffereImage a=ImageIO.read(新文件(imageList.get(0));//imageList保存所有图像的路径
BuffereImage b=ImageIO.read(新文件(imageList.get(1));
BuffereImage c=新的BuffereImage(a.getWidth(),a.getHeight(),BuffereImage.TYPE_INT_ARGB);
图形g=c.getGraphics();
g、 drawImage(a,0,0,null);
g、 drawImage(b,0,0,null);
write(c,“PNG”,新文件(combainedImages));
}
结果是,第二幅图像绘制在第一幅图像上而不是下方,因此在combainedImages
中,第二幅图像与第二幅图像相同
感谢您的帮助。因此修复程序是
g.drawImage(b,a.getWidth(),a.getHeight(),null)代码>?你期望什么?你先画a,然后画b。所以b画了aSo,如果你想把图像分层,一层一层,这种方法有什么问题?这就应该做到这一点。恐怕我不确定你到底想达到什么目的。也许你应该用photoshop来展示你想要的东西result@MadProgrammer-我不想用一张画来覆盖另一张,我想要两张画,一张在另一张下面。好的,停下来,想想你想做什么,甚至可以拿几张纸,这样你就有了一个物理模型。您需要创建一个足够大的图像,以包含您拥有的两个图像,然后需要在0x0
(上/左)和下方绘制一个图像,偏移第一个图像的高度,因此修复为g.drawImage(b,a.getWidth(),a.getHeight(),null)代码>?你期望什么?你先画a,然后画b。所以b画了aSo,如果你想把图像分层,一层一层,这种方法有什么问题?这就应该做到这一点。恐怕我不确定你到底想达到什么目的。也许你应该用photoshop来展示你想要的东西result@MadProgrammer-我不想用一张画来覆盖另一张,我想要两张画,一张在另一张下面。好的,停下来,想想你想做什么,甚至可以拿几张纸,这样你就有了一个物理模型。您需要创建一个足够大的图像,以包含您拥有的两个图像,然后需要在0x0
(上/左)处绘制一个图像,并在下方绘制一个图像,偏移第一个图像的高度
private void combainImages(List<String> imageList, String combainedImages) throws IOException {
BufferedImage a = ImageIO.read(new File(imageList.get(0))); //imageList holds the path to all images
BufferedImage b = ImageIO.read(new File(imageList.get(1)));
BufferedImage c = new BufferedImage(a.getWidth(), a.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics g = c.getGraphics();
g.drawImage(a, 0, 0, null);
g.drawImage(b, 0, 0, null);
ImageIO.write(c, "PNG", new File(combainedImages));
}