如何阻止iPhone在上传到后端期间重新压缩图像
How to stop iPhone from re-compressing images during upload to backend?
我有一个非常具体的要求。我有一个服务,需要上传照片在他们的确切的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更新中解决。显然,苹果公司自己知道这个漏洞并修复了它。
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 压缩phonegap中ios的图像插件
- grunt上的压缩文件夹不起作用
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 用有限的字符集压缩字符串,然后在JS中解压缩
- 将多个onclick压缩为一个
- 压缩静态HTML文件中的JS和CSS
- nodegzip将文件解压缩到变量中
- 在树枝模板上从数据库中解压缩HTML字符串
- 如何将数据从PHP压缩到Javascript
- 节点通过FTP流式传输和处理压缩内容
- 如何摆脱"压缩/块”;PHP页面底部的注释
- codeigniter ajax中的gzip压缩不起作用
- IE 9压缩XML DOM中的空白空间
- express js 4.4.1中的压缩文件(gzip)
- 临时解压缩文件以在浏览器中查看内容
- Adm-Zip-压缩为文件夹的文件
- 用null填充稀疏数组(类似于压缩两个数组)
- 使用JavaScript将压缩文本文件加载到字符串中
- 创建新的目录与YUI压缩任务MSBuild事件