我有一个非常具体的要求。我有一项服务,需要将照片上传到其确切的图像 Blob 中。可以忽略EXIF信息,但是图像数据本身必须保持原样。该服务还必须跨平台工作。
到目前为止,我已经使用各种浏览器以及各种Android手机对PC,Mac进行了测试,并且它们均按预期工作。当照片通过电子邮件,闪存驱动器,各种云服务(一个驱动器,Google驱动器,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?
最佳答案
iOS更新9.0.3已解决此问题。显然,Apple自己知道此错误并已修复。
关于javascript - 如何阻止iPhone在上传到后端期间重新压缩图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30503418/