【问题标题】:How to stop iPhone from re-compressing images during upload to backend?如何在上传到后端期间阻止 iPhone 重新压缩图像?
【发布时间】:2015-08-10 18:37:20
【问题描述】:

我有一个非常具体的要求。我有一项服务需要以确切的图像块上传照片。 EXIF 信息可以忽略,但图像数据本身必须保持原样。该服务还必须跨平台工作。

到目前为止,我已经测试了 PC、Mac、各种浏览器以及各种 Android 手机,它们都按预期工作。当一张照片通过电子邮件、闪存驱动器、各种云服务(One Drive、Google Drive、Dropbox)从一个平台传输到另一个平台时,完全没有问题。照片保持其精确格式,相同的 EXIF 信息具有完全相同的大小,直至最后一个字节。

但是,当我处理 Apple 产品和服务时,就会出现问题。首先,每当将照片保存到 iPhone 中时,iPhone 似乎都会在图像中添加一些额外的 EXIF 数据,从而使图像尺寸稍大一些。但正如我上面所说,我的要求可以忽略 EXIF 信息,所以当它们上传到服务器端时我将它们剥离。不过,iPhone 似乎在上传到后端的过程中做得更多。它似乎在发送之前重新压缩图像。

当我使用 Safari 在 iPhone 中上传图像时,它到达服务器端时文件大小发生了巨大变化。我已经对此进行了多次测试,并使用了不同的图像。在某些情况下,尺寸会减小,而在某些情况下,尺寸会增大。当我使用 PC 或 Android 手机上传它们时,不会发生这种情况。应用程序本身就是一个网站,因此它是使用 HTML 和 JavaScript 编写的。

以下是结果示例:


图像 1 - 原始图像大小:317,185 字节

(不剥离 EXIF 数据)

使用 PC 或 Android 手机上传到服务器:317,185 字节

使用 iPhone 上传到服务器:368,698 字节

(剥离 EXIF 数据)

使用 PC 或 Android 手机上传到服务器:296,412 字节

使用 iPhone 上传到服务器:356,680 字节


图像 2 - 原始图像大小:3,630 字节

(不剥离 EXIF 数据)

使用 PC 或 Android 手机上传到服务器:3,630 字节

使用 iPhone 上传到服务器:2,752 字节

(剥离 EXIF 数据)

使用 PC 或 Android 手机上传到服务器:2,795 字节

使用 iPhone 上传到服务器:2,144 字节


我可以从上面得出的唯一结论是,iPhone 似乎在图像发送之前对其进行了重新压缩。为什么会这样,我该如何阻止它?

当然,如果它不是一个图像,它就不会破坏它吗?例如 .docx 或 .php?

【问题讨论】:

  • 有人知道为什么吗?或者有其他人观察到这一点吗?

标签: javascript ios iphone image file-upload


【解决方案1】:

此问题已在 iOS 更新 9.0.3 中得到解决。显然,Apple 自己知道这个错误并修复了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2021-01-03
    相关资源
    最近更新 更多