javascript - 如何阻止 iPhone 在上传到后端时重新压缩图像?

标签 javascript ios iphone image file-upload

我有一个非常具体的要求。我有一项服务需要以准确的 imageblob 格式上传照片。可以忽略 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?

最佳答案

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

关于javascript - 如何阻止 iPhone 在上传到后端时重新压缩图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30503418/

相关文章:

javascript - 出现 ngRepeat 错误(错误 : ngRepeat:iidexp Invalid Identifier)

iphone - 为什么 UIKit 操作必须在主线程上执行?

iphone - 在 Objective-C 中返回一个对象的所有属性

javascript - 添加 js 确认到 mailto 链接

javascript - 测试未运行服务模拟 promise (.then)

javascript - Gulp 任务发布

iphone - 为什么设置 MBProgressHUD hide 为 YES,而 Hidden method 为 NO?

iphone - 在 UITableView 位置插入一行

objective-c - 进行新选择时,将保留 TableViewController DetailView 中的数据

iphone - 用圆弧覆盖设定器