将多个图像合并为一个
问题描述:
我在一个文件夹中排序了一堆照片,以便在此之后紧接着总是有一张类型为A
的照片和一张类型为B
的照片。将多个图像合并为一个
不幸的是,其中一些需要旋转,我使用标准的Windows文件浏览器。
我需要的是将每张照片A和B合并为新的单张照片,以便第一张照片显示在第二张之上。两张照片都有相同的宽度。
下面是代码:
File first = ...;
File second = ...;
BufferedImage A = ImageIO.read(first);
BufferedImage B = ImageIO.read(second);
int resultHeight = A.getHeight() + B.getHeight();
int resultWidth = A.getWidth();
BufferedImage combined = new BufferedImage(resultWidth, resultHeight, BufferedImage.TYPE_INT_ARGB);
Graphics g = combined.getGraphics();
g.drawImage(A, 0, 0, null);
g.drawImage(B, 0, A.getHeight(), null);
g.dispose();
ImageIO.write(combined, "PNG", new File(destDirectory, destName));
不幸的是,尽管所有的照片似乎有相同的方向与Windows app
观看时,它们在结果照片旋转不同。我知道有一些种类标志的,似乎我怎样才能检测标志由BufferedImage.
忽视并最终旋转照片结合之前需要?谢谢!
如果你提取的旋转,你可以使用[这个答案](http://*.com/questions/9749121/java-image-rotation-with-affinetransform-outputs-black-image-but-works-well- whe)旋转图像。 – fhofmann
谢谢!我使用了这个库,看起来很有希望。 –