java - 将图像添加到另一图像的顶部

标签 java java-6 jai

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

我看到了example of composite imagesJava高级成像。但这似乎受到任一图像文件的最小宽度和高度的限制。因此它输出一个具有头文件高度和宽度的文件。

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

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

header_image

Body image

结果是:

Final result

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

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

长蓝色标题需要位于图像的顶部或正上方。标题图像将包含创建它的用户的内容等。这是我可以做到的。但操作多个图像并不是我熟悉的事情。

最佳答案

在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;
}

关于java - 将图像添加到另一图像的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16284869/

相关文章:

java - Apache HttpClient(4.1 及更高版本): how to do basic authentication?

java - 通过 Runtime.exec() 执行管道 ps unix 命令时出现问题

java - 是否有 Java Advanced imaging api 的本地实现版本?

java - JDK 1.7 打破了向后兼容性? (泛型)

java - 将 Arrays.copyOfRange 从 Java 6 移植到 Java 5

java - 将 RGB PNG 转换为 CMYK JPEG(使用 ICC 颜色配置文件)

java.lang.NoClassDefFoundError : Could not initialize class javax. 媒体.jai.JAI

java - Obj C 等价于 Double.doubleToLongBits

java - 获取在 TestNG 中调用其配置方法的测试方法

java - 如何将 Spring 上下文作为方法参数传递?