有没有一种 JavaScript 机制可以修改图像的 EXIF 元数据信息?

12

我正在寻找一种JavaScript机制来修改图像的EXIF元数据信息,我发现很多JS库都可以让我检索EXIF信息,但没有一个可以修改。

我想要修改图像的EXIF方向信息,然后保存它。


客户端还是服务器端? - Brad
这个有用吗:http://blog.nihilogic.dk/2008/05/reading-exif-data-with-javascript.html - Rahul Tripathi
客户端,本地Web应用程序。 - Dinesh Babu
1
@DuncanNZ JavaScript 也可以在服务器端运行。 - Brad
2
如果@Brad在这里,他很可能会说NodeJS。你在技术上是正确的,但我认为可以合理地假设他指的是客户端,除非另有说明。 - user1318194
显示剩余2条评论
1个回答

2
Blueimp有一个名为JavaScript-Load-Image的库,可以在加载图像时修改/解析EXIF标签。以下是GitHub上代码的链接。
使用loadImage()函数并提供方向可选字段以修改EXIF方向值。
document.getElementById('file-input').onchange = function (e) {
    loadImage(
        e.target.files[0],
        function (img) {
            document.body.appendChild(img);
        },
        {orientation: 3}
    );
};

这是一个EXIF方向值列表,以及可在此处获得的指定旋转信息: https://beradrian.wordpress.com/2008/11/14/rotate-exif-images/ 1 = 图像的第0行位于视觉顶部,第0列位于视觉左侧。 2 = 图像的第0行位于视觉顶部,第0列位于视觉右侧。 3 = 图像的第0行位于视觉底部,第0列位于视觉右侧。 4 = 图像的第0行位于视觉底部,第0列位于视觉左侧。 5 = 图像的第0行位于视觉左侧,第0列位于视觉顶部。 6 = 图像的第0行位于视觉右侧,第0列位于视觉顶部。 7 = 图像的第0行位于视觉右侧,第0列位于视觉底部。 8 = 图像的第0行位于视觉左侧,第0列位于视觉底部。

4
这个问题不是关于那个的,我们需要的是一个能够修改并保存图像exif信息的库。 - Tomas
我明白了。我所知道的所有库都使用Java或PHP来实现,没有JavaScript的。blueimp确实修改了标签onLoad。由于我不知道您的用例,我只能建议您要求用户通过单击按钮将其保存为文件。这样,您就可以创建一个带有正确方向值的阴影副本。 - display name
实际上这很令人惊讶,因为所有文档都已经存在,有非常先进的脚本可以获取元标签,不确定为什么没有人反向编写元数据... 我暂时会使用一些服务器端脚本,但最终希望将所有内容移动到客户端,因为没有必要进行集中存储。用例很简单:生成图像,编写元数据并保存。 - Tomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接