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

如何使用javascript从图像中删除EXIF数据?,javascript,ios,image,exif,Javascript,Ios,Image,Exif,我从HTML文件输入中读入一个文件。对于iOS,我可以用相机拍照。问题是,如果您使用相机拍照,内容将包含EXIF数据(至少如果我使用FileReader API读取文件内容) 如果图像包含EXIF数据,则无法使用画布裁剪。因为 每次调用.toDataURL()时,图像都会被破坏。我猜是 它无法识别EXIF数据,也不知道如何使用 进出口银行数据 文件内容正在由base64编码 FileReader.readAsDataURL()。我把它插入img.src 裁剪是通过使用ctx绘制新图像来完成的。d

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

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

文件内容正在由base64编码
FileReader.readAsDataURL()
。我把它插入img.src

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

那么我的问题是如何使用javascript删除EXIF数据呢?

注意,您写道:

图像被破坏

我认为问题不在EXIF数据中。我认为你有:

对于具有以下特性的设备,画布元素的最大大小为300万像素: 小于256 MB RAM和500万像素(适用于具有更大或更高容量的设备) 等于256 MB内存

这一限制不会引发任何错误,因此您将尝试渲染或读取6MB图像,您将得到一个损坏的blob/dataURL字符串,等等。您会认为文件API被破坏了,画布方法toDataURL/toBlob被破坏了,您是对的。但浏览器中没有bug,这是一个系统限制

已知有修复iOS限制的LIB:


也许可以展示一下你在做什么?我认为canvas不会对您所做的有任何问题。@Woho87我假设原始内容是一个没有自己URL的文件或Blob,对吗?您的问题实际上可能是由于从base64 url的图像导入到画布中,而不是从该图像导出。尝试
yourImgSrc=window.URL.createObjectURL(yourFile),然后将其导入画布。画布输出中不应有任何exif。。。