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

ein*_*ein 11 javascript exif image ios

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

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

文件内容由base64编码 FileReader.readAsDataURL().然后我将它插入img.src.

裁剪是通过绘制ctx.drawImage(...)基于旧图像的新图像完成的,最后我得到了新的图像数据c.toDataURL().

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

Pin*_*nal 5

请注意,你写道:

图像被破坏了

我认为这个问题不在EXIF数据中.我认为你有iOS画布限制:

对于RAM小于256 MB的设备,画布元素的最大大小为3百万像素,对于RAM大于或等于256 MB的设备,最大大小为5百万像素.

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

有已知的修复iOS限制的库: