gpt4 book ai didi

java - javax.imageio.ImageIO 坏了吗?它导入一些旋转的图像

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:16 26 4
gpt4 key购买 nike

下面您将看到一张来自土耳其的名为“simit”的精美糕点图片。它取自 iPad 2,因此它是尺寸为 720*960 的 JPEG。

Picture from iPad 720x960

问题是,当我使用 javax.imageio.ImageIO.read 时方法,它奇怪地导入的图像是向左旋转的 BufferedImage 并变为 960*720

我在 OS X 上的 Sun JVM 1.6.0_29 和 Debian 上的 Sun JVM 1.6.0_26 中复制了这个。这是代码:

public class Main {
public static void main(String[] args) throws Exception {
FileInputStream stream = new FileInputStream(new File("IMG_0159.JPG"));
BufferedImage img = ImageIO.read(stream);
System.out.println("width:" + img.getWidth() + " height:"
+ img.getHeight());
}
}

它输出 width:960 height:720,当我保存这个输出图像时,它会像我之前所说的那样向左旋转。如果您想重现此内容,请从 here 下载代码和图片。并运行以下命令来构建和运行:

javac Main.java && java Main

注意:您可能会看到存档中的 JPG 已经旋转,但它在 OS X、iPad、iPhone 上显示为 720*960,正如您在上面看到的那样,它已正确上传到 imgur。 com。并且它也在 Adob​​e Photoshop 中正确打开,正确上传到 Facebook 等。

这可能是什么问题?

最佳答案

这张照片可能是拿着 iPad 以纵向模式拍摄的,因此包含 ImageIO 忽略的 EXIF 方向信息,但您可以使用其他库(如 Apache Sanselan)来正确处理它。

所以图像本身是 960x720,但 MacOS、ImgUR、Facebook 等正确地考虑了 EXIF 信息。

而且 simit 看起来很好吃 :)

关于java - javax.imageio.ImageIO 坏了吗?它导入一些旋转的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com