Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java将图像合并为一个_Java_Image_Bufferedimage - Fatal编程技术网

Java将图像合并为一个

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

我有2个
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));

}