为什么 exif Orientation 不强制图像水平?

为什么 exif Orientation 不强制图像水平?

我试图在图像方向上保持一定的稳定性,但它们在 Debian 图像查看器/LaTeX 和图像查看器中有所不同。我这样做,但它对错误定位图像的方向没有影响;手动调整它-Orientation=[1234]没有帮助

exiftool -Orientation=1 -n *.jpg

图 1 在图像查看器(Shotwell,...)和 Debian Space review 中打开相同图像的输出(LaTeX 中的相同输出)

在此输入图像描述

我首先认为图像方向是错误的,但事实并非如此,因为这样做convert masi.jpg -rotate 90 masi-rotated.jpg也可以保持相对差异相同。

Exif 信息

图像位置错误,方向为 90 度或其倍数

$ exiftool 28.jpg 
ExifTool Version Number         : 9.74
File Name                       : 28.jpg
Directory                       : .
File Size                       : 69 kB
File Modification Date/Time     : 2016:11:29 11:59:08+02:00
File Access Date/Time           : 2016:11:29 12:07:17+02:00
File Inode Change Date/Time     : 2016:11:29 12:06:29+02:00
File Permissions                : rw-r--r--
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Exif Byte Order                 : Little-endian (Intel, II)
Orientation                     : Rotate 270 CW
Software                        : Shotwell 0.20.1
Color Space                     : sRGB
Exif Image Width                : 425
Exif Image Height               : 707
XMP Toolkit                     : XMP Core 4.4.0-Exiv2
Image Width                     : 425
Image Height                    : 707
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 425x707

在两个视图中正确(如预期)定位图像

$ exiftool 27.jpg 
ExifTool Version Number         : 9.74
File Name                       : 27.jpg
Directory                       : .
File Size                       : 66 kB
File Modification Date/Time     : 2016:11:29 11:58:53+02:00
File Access Date/Time           : 2016:11:29 12:13:36+02:00
File Inode Change Date/Time     : 2016:11:29 12:07:46+02:00
File Permissions                : rw-r--r--
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Exif Byte Order                 : Little-endian (Intel, II)
Orientation                     : Horizontal (normal)
Software                        : Shotwell 0.20.1
Color Space                     : sRGB
Exif Image Width                : 842
Exif Image Height               : 504
XMP Toolkit                     : XMP Core 4.4.0-Exiv2
Image Width                     : 842
Image Height                    : 504
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 842x504

Debian:8.5
侏儒:3.14

答案1

28.jpg 有一个 EXIF 标签“方向:顺时针旋转 270 度”;相反 29.jpg 具有“水平(正常)”。旋转图像convert不会更改 EXIF 信息,因此尊重 EXIF 信息的观看者的显示效果仍然与不尊重 EXIF 信息的观看者不同。

您可以使用 更改标签exiftool。为此,最好exiftool先调用一些选项,这会给你类似的信息:

$ exiftool -g -n -arg 28.jpg
.
.
-EXIF:Orientation=2
.
.

(该值可能不同)。这说:

-g:分组并显示标签组

-n:显示数值而不是文本

-arg:以参数形式显示标签

现在您可以将该标签修改为“方向:水平(正常)”

exiftool -n -EXIF:Orientation=1

您必须定义 -n,以便 exiftool 知道参数是数字,以及组名称,以便 exiftool 知道在哪里找到标签。

有关更多信息,请参阅例如Exif 方向标签

答案2

我没有设法通过里奇的回答解决问题。我最终在线程中通过 LaTeX 成功解决了这个问题如果高度超出,如何将图像旋转90? 两个图片尺寸都大于页面尺寸的情况在线程中尚未解决。

exiftool是关于一个文件。为了让页面上的图片相对美观,您需要 LaTeX。这里讨论的工具还不够,但需要处理所有图片的页面方向。所以我认为这个问题本身就有缺陷,不能仅靠exif数据来解决。

相关内容