0

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

我看过一个使用Java Advanced Imaging合成图像的例子。但这似乎受到任一图像文件的最小宽度和高度的限制。所以它输出一个具有头文件高度和宽度的文件。

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

使用JDK 1.6.0_41,我需要拍摄前两个图像:

header_image

身体形象

结果是:

最后结果

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

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

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

4

1 回答 1

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;
}
于 2013-04-29T18:25:02.157 回答