首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从图像中删除exif数据(xmp)

从图像中删除exif数据(xmp)
EN

Stack Overflow用户
提问于 2022-07-22 22:02:45
回答 2查看 297关注 0票数 1

我一整天都在尝试用React从图像中删除EXIF数据。我想这样做是为了尝试解决另一个问题,当用户用XMP数据上传图像时,很明显AWS WAF会阻止它(我在另一种数据上没有问题,我没有试过所有的方法,但是我使用了带有相机信息和blabla的图像,它工作得很好。另外,我用软件从有问题的图像中删除了XMP数据,WAF不再阻止它)。因此,我想删除XMP数据(作者、创建者工具等)。在发送到服务器之前。

我正在使用上传图片,今天我尝试了不同的库来实现这一点,但没有成功。使用exifr和EXIF,我可以看到所有的EXIF信息(包括XMP),并指定导致上传错误的数据,但我没有找到从图片中删除该信息的方法。另一方面,我使用了piexifjs并在删除信息方面做得很好,但是我找不到XMP数据!!只有gps,带有相机和图片设置的EXIF,再加上一些我不感兴趣的东西。我能做什么?我可以用exif和exifr看到这些信息,但是我只能用pixiefjs删除那些我看不到xmp数据的内容。

我不提供代码,因为它本身并不是一个错误,我想要库建议,或者,如果存在,可以配置piexifjs来查找这类数据。exif-js和exifr是用来阅读的,而不是用来移除的.非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2022-07-23 10:07:35

下面是我的一个示例代码:

在图像上有一个权限,您应该能够下载图像,并且不应该包含exif数据。但我不确定是否有更好的方法来做到这一点。

代码语言:javascript
复制
document.getElementById('upload').onchange = function() {
  const img = new Image();
  img.src = URL.createObjectURL(this.files[0]);
  img.onload = function() {
    //canvas
    const canvas = document.createElement('canvas');
    canvas.width = this.width;
    canvas.height = this.height;
    const ctx = canvas.getContext('2d');
    ctx.drawImage(this, 0,0);
    //image in html
    newImg = document.getElementById('img');
    newImg.src = canvas.toDataURL();
    newImg.style.width = this.width;
    newImg.style.height = this.height;
  };
  img.onerror = function() {console.error("The file is not an image")};
};
代码语言:javascript
复制
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="file" id="upload">
        <img id="img"></img>
    <script src="script.js"></script>
  </body>
</html>

票数 1
EN

Stack Overflow用户

发布于 2022-07-22 22:40:11

我不确定它是否简单,但是您可以创建一个具有图像大小的画布,将图像加载到画布中,并将图像数据从画布写入新的图像文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73086470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档