将多张图片合并成一张图片

3
我有一堆照片,已经按文件夹分类,每个文件夹中都有一个类型为 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应用程序查看所有图片时似乎都具有相同的方向,但在结果照片中它们被旋转了不同的角度。我知道有一种标志被BufferedImage忽略了。

我该如何检测该标志并在合并之前根据需要旋转照片?谢谢!

1个回答

2

如果你提取旋转信息,你可以使用这个答案来旋转图像。 - fhofmann
谢谢!我使用了那个库,看起来很有前途。 - Matěj Kripner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接