java - 将多张图片合二为一

标签 java image graphics

我将一堆照片分类在一个文件夹中,因此总是有一张类型为 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.

似乎忽略了某种标志

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

最佳答案

我建议使用 MetadataExtractor获取图像的方向。参见 this question .

关于java - 将多张图片合二为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37391130/

相关文章:

java - CQ5 - 如何获取页面图片

javascript - 在新窗口中打开更大版本的图片/w javascript

java - 为 JFrame 设置背景颜色

java - 使用 JSoup 从 Google 搜索结果的所有页面检索所有链接

java - Java 版本 "1.7.0_79"的 SSL 握手失败

html - 如何让 CSS 背景图像显示在 Word 打开的 HTML 文件中?

c# - 在 C# 中的图片框上绘制箭头

r - 如何使用 ggplot2 获取具有不同几何匹配的 2 个图形的网格

Java,顺序流在哪个线程中执行?

java - 网络 bean : Transferring Maven Repository index: Central - stuck at 0%