【问题标题】:iOS / EXIF Orientation - if iOS resizes file before uploading, it alters exif orientation valueiOS / EXIF 方向 - 如果 iOS 在上传之前调整文件大小,它会改变 exif 方向值
【发布时间】:2020-07-22 10:03:40
【问题描述】:

我正在使用 Intervention 包来处理使用 Laravel 构建的以移动为中心的 Web 应用程序中的文件上传。

我有一张 exif 方向为 8(横向)的照片

当以全尺寸上传此文件然后使用干预的 orientate() 时

$img = Image::make($file);
$img->orientate();

它工作正常,并且可以正确旋转照片。

但是,如果在 iOS 中,您在上传之前从照片库中选择“选择图像大小”(以便上传较小的照片),exif 数据会将其报告为 EXIF 方向 = 1,但图像会横向显示(无论无论是否应用 orientate() 。

我很想听听其他人如何处理这种 iOS 怪癖。

【问题讨论】:

  • 我在调整图像文件大小后从 iOS 上传照片时遇到了类似的问题。

标签: ios laravel image intervention


【解决方案1】:

天啊,已经 11 个月了,还没有解决?我正面临同样的问题,我在其他线程中读到这是一个 ios 问题,但仍未得到纠正,这是真的还是我们仍然遗漏了什么?

所以我做了一个小脚本来测试这个。如果您拍摄 iPhone 的实际照片并上传图像,您会得到一个带有方向值的弹出窗口。它告诉我它是 6(这意味着照片是横向的,但通过 iphone 更正为右侧向上)。

这是令人困惑的地方。因此,在上传之前,iphone 上的用户可以选择将大小调整为大、中、小(实际大小以外的任何内容)。这就是问题所在。

因为如果您选择其中任何一个,那么现在上传的图片会显示方向值 1(这意味着它是正面朝上的)但是图片缩略图是横向的!

所以在深入研究之后,有一个模糊的说法是 iOS 在上传图像之前“复制”了一个全新的 jpeg。这意味着这个新的更小尺寸的图像是原始实际尺寸的一个版本,但是方向 exif 值不会被保留。默认值为 1!

我希望有办法在我们这边解决这个问题,否则 exif 解释器不知道图像是否已经正面朝上并赋予默认值,而不是 ios 制作一个全新的调整大小的图像并携带超过那个横向的 6 值。

这有意义吗?我希望我没有混淆任何人。

【讨论】:

    猜你喜欢
    • 2013-10-14
    • 1970-01-01
    • 2018-12-26
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2021-06-14
    • 2015-08-06
    相关资源
    最近更新 更多