如何阻止iPhone在上传到后端期间重新压缩图像

How to stop iPhone from re-compressing images during upload to backend?

本文关键字:新压缩 压缩 图像 iPhone 何阻止 后端      更新时间:2023-09-26

我有一个非常具体的要求。我有一个服务,需要上传照片在他们的确切的imageblobs。EXIF信息可以忽略不计,但是图像数据本身必须保持原样。这个服务也必须跨平台运行。

到目前为止,我已经测试了PC、Mac、各种浏览器以及各种Android手机,它们的运行都符合预期。当一张照片通过电子邮件、闪存盘、各种云服务(one Drive、Google Drive、Dropbox)从一个平台传输到另一个平台时,完全没有问题。照片保持其完全相同的格式,相同的EXIF信息具有完全相同的大小,直到最后一个字节。 但是当我处理苹果的产品和服务时,问题就出现了。首先,无论何时将照片保存到iPhone中,iPhone似乎都会向图像添加一些额外的EXIF数据,使图像大小稍微大一些。但是正如我上面所说的,我的需求可以忽略EXIF信息,所以当它们被上传到服务器端时,我将它们删除。然而,iPhone似乎做的不仅仅是上传到后端。它似乎是在发送之前重新压缩图像。

当我在iPhone上使用Safari上传图片时,它到达服务器端时文件大小发生了巨大变化。我已经用不同的图像测试了多次。在某些情况下,大小减少,在某些情况下,大小增加。当我用个人电脑或安卓手机上传它们时,就不会发生这种情况。应用程序本身是一个网站,所以它是使用HTML和JavaScript编写的。

以下是结果示例:


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

(不剥离EXIF数据)

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

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

(剥离EXIF数据)

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

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


图片2 -原始图片大小:3630字节

(不剥离EXIF数据)

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

使用iPhone上传到服务器: 2752字节

(剥离EXIF数据)

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

使用iPhone上传到服务器: 2144字节


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

当然,如果它不是一个图像,它不会与它混淆吗?比如。docx或。php?

此问题已在iOS 9.0.3更新中解决。显然,苹果公司自己知道这个漏洞并修复了它。