如何使用javascript从图像中删除EXIF数据?

时间:2013-11-05 14:37:25

标签: javascript ios image exif

我从HTML文件输入中读取了一个文件。对于iOS,我可以从相机拍照。问题是,如果你用相机拍照,内容将包括EXIF数据(至少如果我用FileReader API读取文件内容)。

  

如果图像包含EXIF数据,则无法使用画布裁剪。因为   每次拨打.toDataURL()时,图像都会被破坏。我的猜测是   它无法识别EXIF数据,也不知道如何裁剪图像   EXIF数据。

     

文件内容由base64编码   FileReader.readAsDataURL()。我将其插入img.src。

     

通过在旧图像中使用ctx.drawImage(...)绘制新图像来完成裁剪   我终于用c.toDataURL()得到了新的图像数据。

所以我的问题是如何使用javascript删除EXIF数据?

1 个答案:

答案 0 :(得分:5)

注意,你写道:

  

图像被破坏

我认为这个问题不在EXIF数据中。我想你有iOS canvas limitation

  

对于具有的设备,canvas元素的最大大小为3百万像素   低于256 MB RAM和500万像素,用于具有更高或更高的设备   等于256 MB RAM。

此限制不会抛出任何错误,因此您将尝试渲染或读取6MB图像,您将获得损坏的blob / dataURL字符串,依此类推。而你会认为File API已经破解,画布方法toDataURL / toBlob被破坏了,你就是对的。但是错误不在浏览器中,这是一个系统限制。

已知用于修复iOS限制的库: