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

How to remove EXIF data from image using javascript?

本文关键字:删除 EXIF 数据 图像 何使用 javascript      更新时间:2023-09-26

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

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

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

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

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

注意,你写道:

图像被破坏

我认为问题不在于EXIF数据。我认为你有iOS画布的限制:

画布元素的最大大小为 300 万像素,适用于具有以下条件的设备 小于 256 MB RAM 和 5 百万像素,适用于具有更大或 等于 256 MB 内存。

此限制不会引发任何错误,因此您将尝试呈现或读取 6MB 图像,您将获得损坏的 blob/dataURL 字符串,依此类推。你会认为File API坏了,画布方法到DataURL/toBlob坏了,你会是对的。但是错误不在浏览器中,这是系统限制。

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

  • Javascript-load-image
  • ios-imagefile-megapixel