【发布时间】:2012-03-16 05:43:00
【问题描述】:
您将在下面看到一张来自土耳其的名为“simit”的精美糕点图片。它取自 iPad 2,因此它是尺寸为 720*960 的 JPEG。
问题是,当我使用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。并且在 Adobe Photoshop 中也正确打开,正确上传到 Facebook 等。
这可能是什么问题?
【问题讨论】:
标签: java jpeg javax.imageio