如何在命令行获取iPhone照片的宽和高?

苹果手机(试过7和8,其他的没试过)拍摄的照片,有个问题,不管这张图在 Mac 上显示是竖图还是横图,其宽高值是一样的。

比如,有个图片叫 vertical.jpg 和 horizontal.jpg。使用 ffprobe 检测,会得到类似下图的结果:

Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), \
4032x3024 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc

判断为横图。而在 finder 中显示为竖图。
然后我换了 MacOS 自带的 sips 检测:

$ sips -g pixelWidth -g pixelHeight vertical.jpg
pixelWidth: 4032
pixelHeight: 3024
$ sips -g pixelWidth -g pixelHeight horizontal.jpg
pixelWidth: 4032
pixelHeight: 3024

输出竟然一模一样。
终于,经过一番 bing,我发现了神器 exiftool,用它比对和后发现:

$ exiftool vertical.jpg | grep Orientation 
Orientation                     : Rotate 90 CW
$  exiftool horizontal.jpg | grep Orientation 
Orientation                     : Horizontal (normal)

# 也可以写成: 

$ exiftool -orientation vertical.jpg
Orientation                     : Rotate 90 CW

原来苹果区分是否横图用的不是宽高值,而是一个叫 Orientation 的属性,真是坑爹啊。

因此,你需要把宽高值都拿出来,然后根据 Orientation 是否为 Horizontal 来判断“宽”是否是“宽”,“高”是否是“高”。

记于 20200323

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容