php - iPhone OS 图像/照片大小调整工具可更改 EXIF 方向数据

标签 php ios iphone webview exif

看起来,当从 iOS 设备拍摄 HDR 照片时,由于 Apple 不会旋转图像并全部以横向模式拍摄,因此有 EXIF 元数据(具体为方向)告诉其他软件如何呈现该照片。

当有人尝试发送/共享/使用/上传 iPhone 相机拍摄的原始 HEIC 图像的调整大小版本时,就会出现奇怪的情况。

iOS Resizing tool

该操作系统调整大小工具弄乱了宝贵的 EXIF 方向元数据,因此我们留下的图像未旋转,并且不包含任何实际正确呈现它的元数据。

我们有一个 php 服务器,用于接收人们上传的此类照片,其中许多人提示通过 WebView 上传调整大小的照片并得到困惑的方向。

不知道如何解决这个问题,考虑到我们最终得到的照片的 exif 方向值1(这意味着不需要方向) - 在此表示感谢iOS 调整大小工具(即使在调整大小之前图像的 exif 方向值6)?

https://drive.google.com/file/d/168ZxbXI0IFofoTr7pPDOULtE-VO7HcVC/view?usp=sharing

找不到实际共享原始 HEIC 图像的方法,因此我只是共享了实际大小选项 (image00006) 和的输出> 选项(image00001)。示例照片中的手指始终指向天花板,并且拍照时 iPhone 的方向为纵向。

最佳答案

我也遇到了同样的问题!我编写了一个小脚本来提醒用户方向值是什么。只要是实际的图像尺寸,它就会显示例如 6(这意味着它是横向的,iPhone 将图像显示为正面朝上,这很好)。

但问题在于,当用户将实际尺寸更改为小、中或大时,并且方向似乎默认为 1,即使新调整大小的图像仍然是横向的。

我在某处读到,当 iPhone 调整图像大小时,它会在上传之前复制一个全新的“jpeg”文件。当它这样做时,它似乎并没有继承 exif 方向值(例如 6),它只是将所有内容默认为 1!

因此,任何在调整大小时处理它的 php 逻辑或 javascript 都无法正确旋转它,因为即使图像是横向的,它也会将 exif 数据读取为 1 值。然而,实际大小(原始图像)的 exif 值为 6,并且无论开发人员使用 php 还是 javascript exif 数据来执行此操作,IS 都能正确旋转。

这个问题似乎是一年前一些用户在 github 上发布的,但仍然没有采取任何措施。如果这是一个ios问题,我希望高层可以看看这个。

关于php - iPhone OS 图像/照片大小调整工具可更改 EXIF 方向数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66661973/

相关文章:

ios - 绕轴旋转 SCNVector3

ios - 我们可以在类别中设置只读属性吗?

ios - 如何进行脉冲物理学

ios - 无法在 iOS 5.1 中加载 MKMapView

ios - 锁定 tableView 顶部的搜索栏

javascript - 将表单数据发送到 2 个地方

php - 计算 MySQL 表中的行数 (PHP)

iphone - 在 iOS 6 中启用自动布局,在 < iOS6 中禁用自动布局

javascript - 如何将ajax结果放入动态添加的容器中?

php - MySQL 服务器版本,用于使用近 id 的正确语法