将多个图像组合为一个



我在一个文件夹中对一堆照片进行了排序,这样总是有一张类型为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.似乎忽略了某种标志

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

我建议使用MetadataExtractor来获取图像的方向。请参阅此问题。

相关内容

  • 没有找到相关文章

最新更新