将图像添加到另一个图像的顶部

时间:2013-04-29 17:37:57

标签: java jdk1.6 jai

过去几天我一直在寻找解决方案。

我见过{{3>} Java Advanced Imaging 。但这似乎受到任一图像文件的最小宽度和高度的限制。因此它输出一个文件,其中包含头文件的高度和宽度。

最好,我想让标题不覆盖身体图像的任何部分。但这不是一个要求。有时身体图像的宽度小于标题,这很好,因为头文件的主要内容将位于中间。

使用 JDK 1.6.0_41 ,我需要拍摄前两张图片:

header_image

Body image

结果是:

Final result

无论是使用Java还是Javscript都可以。整个过程如下:

我使用OpenLayers获取地图的canvas对象,然后使用POST将其发送到Java Servlet进行处理和存储。然后,如果用户需要,则检索图像。

长蓝色标题需要位于图像的顶部或其上方。标题图片将包含来自创建它的用户的内容等。我可以做。但操纵多个图像并不是我所熟悉的。

1 个答案:

答案 0 :(得分:2)

在Java中,您可以这样做:

public BufferedImage prependImage(BufferedImage image1, BufferedImage image2) {
    Dimension d1 = new Dimension(image1.getWidth(null),
            image1.getHeight(null));
    Dimension d2 = new Dimension(image2.getWidth(null),
            image2.getHeight(null));
    Dimension dt = new Dimension(d1.width, d1.height + d2.height);

    BufferedImage image = new BufferedImage(dt.width, dt.height,
            BufferedImage.TYPE_INT_ARGB);
    Graphics g = image.getGraphics();

    int x = 0;
    int y = 0;
    g.drawImage(image1, x, y, d1.width, d1.height, null);
    y += d1.height;
    g.drawImage(image2, x, y, d2.width, d2.height, null);
    g.dispose();

    return image;
}