2013-04-29 114 views
0

我一直在寻找最近几天的解决方案。将图像添加到其他图像的顶部

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

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

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

header_image

Body image

而且有结果是:

Final result

无论是使用Java还是Javscript都是fin即整个过程如下:

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

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

回答

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; 
} 
+0

看起来不错,谢谢!初步测试看起来很棒。我可能不得不切换到另一种格式,而不是Tiffs,因为直到我切换到PNG文件时它才工作。要转换文件并再试一次,但看起来很完美。谢谢! – Aggieborn 2013-04-29 20:29:12

+0

用转换后的文件进行测试。它效果很好。吉尔伯特,非常感谢! – Aggieborn 2013-04-29 21:12:14