请推荐一个用于将 IPTC 数据写入图像的节点模块?
Please recommend a Node module for writing IPTC data to images?
我有一个 Node.js 服务器,其工作是下载 JPEG 图像,将某些数据写入几个 IPTC 字段(例如 Iptc.Application2.Caption
)并将图像传递给另一个服务。
理想情况下,我想将 IPTC 数据写入内存缓冲区(而不将图像写入本地文件系统)。如果做不到这一点,我可以接受下载的解决方案,将文件存储到 FS,然后应用 IPTC 数据。
我已经使用了 https://github.com/dberesford/exiv2node, but it doesn't work on Node.js v10. And it depends on exiv2 C++ 库,这使得 运行 容器化变得混乱。
所以我的问题是:是否有一个像样的 Node.js 模块可以启用 IPTC 数据写入,并且不依赖于某些怪物 C 库?
我会用exiftool-vendored, that it just a wrapper for the exiftool command line utility. It will also install the exiftool binary, if you have already installed exiftool you can use exiftool without this binary
安装 exiftool:
npm install --save exiftool-vendored
您添加的标签放在支持它们的规范中,在本例中为 IPTC。
比如我会加上Artist和Copyright标签,exiftool会放对应的IPTC标签。
const exiftool = require("exiftool-vendored").exiftool
const tags = {
artist:"David Lemon",
copyright:"2018 David Lemon"
};
exiftool.write("outernet.jpeg", tags);
exiftool.write
将 return 一个承诺,您可以在计算其他事情时等待。 More info on promises.
使用 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
[...]
我有一个 Node.js 服务器,其工作是下载 JPEG 图像,将某些数据写入几个 IPTC 字段(例如 Iptc.Application2.Caption
)并将图像传递给另一个服务。
理想情况下,我想将 IPTC 数据写入内存缓冲区(而不将图像写入本地文件系统)。如果做不到这一点,我可以接受下载的解决方案,将文件存储到 FS,然后应用 IPTC 数据。
我已经使用了 https://github.com/dberesford/exiv2node, but it doesn't work on Node.js v10. And it depends on exiv2 C++ 库,这使得 运行 容器化变得混乱。
所以我的问题是:是否有一个像样的 Node.js 模块可以启用 IPTC 数据写入,并且不依赖于某些怪物 C 库?
我会用exiftool-vendored, that it just a wrapper for the exiftool command line utility. It will also install the exiftool binary, if you have already installed exiftool you can use exiftool without this binary
安装 exiftool:
npm install --save exiftool-vendored
您添加的标签放在支持它们的规范中,在本例中为 IPTC。
比如我会加上Artist和Copyright标签,exiftool会放对应的IPTC标签。
const exiftool = require("exiftool-vendored").exiftool
const tags = {
artist:"David Lemon",
copyright:"2018 David Lemon"
};
exiftool.write("outernet.jpeg", tags);
exiftool.write
将 return 一个承诺,您可以在计算其他事情时等待。 More info on promises.
使用 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
[...]