图片查看器是如何知道自动旋转图片的?

我有两个文件,它们曾经是相同的,但其中一个在Windows上使用Windows照片查看器旋转了。我们称它们为原始图像和旋转后的图像。这个图像的逻辑表示是纵向的。
原始图像的宽度为5184,高度为3456(根据文件属性中的图像选项卡报告),因此它是一张横向的图片。
旋转后的图像显然宽度为3456,高度为5184,因此它是一张纵向的图片。
然而,当我在Ubuntu上打开这两个文件中的任何一个时,它们在图像查看器中以纵向模式显示,我无法理解为什么会发生这种情况。图像查看器如何知道观察这个图像的逻辑方式是哪个?
编辑:Ubuntu似乎也知道图片中的上方在哪里,因为缩略图也正确地表示出来,与宽度和高度值相对应。
3个回答

图像文件中可能嵌入了元信息,可以提供有关图像方向的线索。

Ubuntu的图像查看器会根据这些元数据自动进行软旋转。Windows照片查看器传统上忽略了这些信息

这可能导致意外的结果。一个程序可能会遵循方向并旋转以进行查看,而其他程序则可能不会。

Exif方向属性可以有8个值之一。还可能存在其他用于图像方向的方案/元数据表示。相机可以在拍摄时嵌入这些信息。

我发现Imagemagick对于读取这些元数据非常有用。还有其他可用的元数据查看器。您可以尝试从您的照片/图像查看程序中显示这些嵌入属性(查找图像属性)。

使用Imagemagick进行查看:

$ sudo apt-get install imagemagick
$ identify -verbose /path/to/image.file

嗯,EXIF的问题让我在很长一段时间内遇到了很多双重旋转的图像。Picasa为我旋转了它们,但是当我在Ubuntu上查看我的图像时,它们看起来被双重旋转了。这让我不得不从所有的文件中删除EXIF。在我看来,Windows处理这个问题更好。 - Ashhar Hasan

有一些与特定图像相关的元数据,它告诉图像查看器应该以哪种方向显示您的图像。 要查看更多,请转到终端并键入
less /path/to/your/image.jpg

谢谢你们两个的回答,虽然它们很有帮助,但我发现了最简单的方法来确定为什么会发生这种情况。
使用默认的图像查看器,我右键点击图片 -> 属性 -> 详细信息选项卡 -> 展开“图像数据”组 -> 方向。这些元数据告诉查看器和Ubuntu如何查看图片。
这只有可能是因为相机有一个可以确定哪个方向是上的加速度计,并将其保存为文件的元数据。Windows照片查看器不知道如何处理这些元数据并忽略它,因此需要旋转以正确查看图片,这会修改原始数据。