我会用exiftool 供应商 https://www.npmjs.com/package/exiftool-vendored,它只是一个包装exiftool 命令行实用程序 https://sno.phy.queensu.ca/~phil/exiftool/。它还将安装 exiftool 二进制文件,如果您已经安装了 exiftool,则可以使用exiftool 没有这个二进制文件 https://www.npmjs.com/package/node-exiftool
安装 exiftool:
npm install --save exiftool-vendored
您添加的标签将放入支持它们的规范中,在本例中为 IPTC。
例如我将添加Artist and 版权标签,exiftool 会放入对应的 IPTC 标签。
const exiftool = require("exiftool-vendored").exiftool
const tags = {
artist:"David Lemon",
copyright:"2018 David Lemon"
};
exiftool.write("outernet.jpeg", tags);
exiftool.write
将返回一个您可以在计算其他事情时等待的承诺。有关承诺的更多信息 https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call/14220323#14220323.
使用 exiftool CLI,您可以检查标签是否已正确写入文件:
$ node_modules/exiftool-vendored.exe/bin/exiftool.exe outernet.jpeg
ExifTool Version Number : 11.20
File Name : outernet.jpeg
Directory : .
File Size : 4.6 kB
[...]
Artist : David Lemon
Y Cb Cr Positioning : Centered
Copyright : 2018 David Lemon
Current IPTC Digest : 2b3df19b0c67788262a0d0dced3b6d58
Coded Character Set : UTF8
Envelope Record Version : 4
[...]