Java将图像组合在一起

时间:2017-08-15 12:43:25

标签: java image graphics

我想从2张图片创建一张图片,所以第一张图片将在第二张图片之上:

----------------
image1
----------------
----------------
image2
----------------

因此输出图像将具有图像1 +图像2的高度和宽度:

这是我的代码:

private void combainImages(List<String> imageList, String combainedImages)
            throws IOException {
        //paths for the images
        String aPath = imageList.get(0);
        String bPath = imageList.get(1);
        //as image
        BufferedImage a = ImageIO.read(new File(aPath));
        BufferedImage b = ImageIO.read(new File(bPath));

        int aw = a.getWidth(); //551
        int ah = a.getHeight(); //600

        int bw = b.getWidth(); //551
        int bh = b.getHeight(); //600

        BufferedImage c = new BufferedImage(a.getHeight() + b.getHeight(),
                a.getWidth() + b.getWidth(), BufferedImage.TYPE_INT_ARGB);
        // 1200 1102
        Graphics g = c.getGraphics();
        g.drawImage(a, 0, 0, null);
        g.drawImage(b, 0, a.getWidth(), null);
        ImageIO.write(c, "PNG", new File(combainedImages));
    }

这个输出是2幅图像之间的一个很大的空间。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您根据宽度而不是高度选择Y位置。

g.drawImage(b, 0, a.getWidth(), null); 

应该是

g.drawImage(b, 0, a.getHeight(), null);