ImageMagick:如何确定jpeg文件的方向?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ImageMagick:如何确定jpeg文件的方向?相关的知识,希望对你有一定的参考价值。
ImageMagick命令将显示JPG文件的方向?
您可以使用
identify -format '%[EXIF:Orientation]' <image.jpg>
根据identify -format
docs(这是关于exif元数据的更进一步)。
尝试
identify -verbose <image.jpg>
要查看图像中的元数据(例如,如果图像未使用相机拍摄,则不会设置方向标记)。
或者你也可以这样做
identify -format '%wx%h' <image.jpg>
它为您提供高度宽度(例如'800x598','1936x2592')并使用它们来确定图像是否正直(不确定这是多么可靠 - 有时你用相机拍摄肖像图像和EXIF数据将正确记录方向,但图像可能仍然显示为横向)。
介绍
图像存储的不仅仅是像素信息。许多信息以元数据的形式存储。图像可以在多个元数据目录中具有多个元数据一些例子是:Exif,IPTC,JFIF,Ducky等。
Orientation是Exif目录中的元数据标签之一。此元数据通知您的显示设备在解码像素数据后如何定向图像。此元数据具有1-8的有效值。此元数据并不总是出现在图像中,因为可以从图像中删除元数据。也可以将此元数据设置为错误值,例如0,9,17等,因为此元数据支持16位无符号值(0-65535)。
下图显示了使用此元数据如何影响图像显示。图像来源:https://me94.me/2316.html
Imagemagick解决方案
从Imagemagick(IM)获取方向可能意味着两件事。您可能(大部分)对获取图像的方向感兴趣,第二种方法是知道方向元数据标记的确切值(在极少数情况下,我假设)。
要知道方向,因此您有两个IM命令(它们输出的内容变化很小)。
identify -format '%[EXIF:orientation]' <InputFileName>
[获取确切的元数据值。]identify -format '%[orientation]' <InputFileName>
[获取图像方向值,exif值到可读术语的映射。]
对于命令1: -
即使值可能无效,输出也是精确值。例如: - 0,1,5或甚至65535.但是,如果没有此元数据,输出(恕我直言,模糊输出)是:identify: unknown image property "%[EXIF:orientation]" @ warning/property.c/ InterpretImageProperties/3785.
对于命令2: -
输出如下: -
Undefined - 0
Undefined - [When no metadata]
TopLeft - 1
TopRight - 2
BottomRight - 3
BottomLeft - 4
LeftTop - 5
RightTop - 6
RightBottom - 7
LeftBottom - 8
Unrecognized - any value between 9-65535, since
there is no mapping from value 9-65535
to some geometry like 'LeftBottom'
在Mac和Ubuntu(EC2)上测试
以上是关于ImageMagick:如何确定jpeg文件的方向?的主要内容,如果未能解决你的问题,请参考以下文章
Imagick 无法将 PDF 转换为 JPEG,但 ImageMagick 可以