使用JavaScript提取EXIF数据

4
我正在评估使用Canvas技术在移动Web应用中上传图片的方法。关键问题是如何在客户端读取EXIF数据。本站上的其他讨论指向了出色的Blueimp JavaScript Image Load。我特别想从EXIF中提取以下信息:
  • 照片拍摄时间
  • 地理位置 - 照片拍摄时的经度和纬度
在Windows Vista上使用Firefox v.33.1测试Blueimp脚本,使用iPhone拍摄的照片(带有地理数据),它成功提取了所有的EXIF数据,包括日期、时间和地理坐标。但是,在iOS上运行相同的测试,并使用相同的照片,它只提取了少量的EXIF数据 - 只有尺寸和方向(我使用的是iPhone 5,iOS 8.1),没有其他信息。为什么会这样?是否有修复方法或者推荐其他的JavaScript EXIF提取工具? 非常感谢您的建议,因为这使我很烦恼!提前致谢。
请注意:我不想使用PHP server-side来解决这个问题,因为这会导致上传完整的图片,而在移动设备上的带宽下速度较慢,因此选择使用Canvas客户端缩放图像。

对Blueimp脚本进行进一步测试:使用三星Galaxy Android手机和诺基亚Windows,也可以成功提取完整的EXIF数据。唯独iPhone存在问题。这个谜团越来越深了。 - rmcm
深入挖掘后,我现在正在测试 **EXIF-JS JavaScript库用于读取EXIF图像元数据**。在iPhone上,它似乎可以很好地处理嵌入式图像,但是相同的问题出现在图像上传时。这可能与iOS上的文件路径有关吗? - rmcm
另一个 JS 库是 JSJPEGmeta - 在 iOS 上有有趣的结果,提取了更广泛的图像元数据,但仍然缺乏 GPS 数据。为什么 iPhone 无法读取这一部分数据? - rmcm
1个回答

2
在进一步阅读此问题后,发现一年前类似的问题被提出,但没有得到令人满意的答复。根据一位评论者的说法,由于隐私原因,在iOS设备上上传的文件只能访问文件的经过消毒处理的版本。这意味着有用的信息,如时间/日期和GPS信息在文件可供浏览器使用之前就已被剥离。

这种情况打破了这个想法。 :(


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接