gpt4 book ai didi

node.js - 请推荐一个用于将 IPTC 数据写入图像的 Node 模块?

转载 作者:太空宇宙 更新时间:2023-11-03 21:48:39 25 4
gpt4 key购买 nike

我有一个 Node.js 服务器,其工作是下载 JPEG 图像、将某些数据写入几个 IPTC 字段(例如 Iptc.Application2.Caption)并将图像传递给另一个服务。

理想情况下,我想将 IPTC 数据写入内存缓冲区(而不将图像写入本地文件系统)。如果做不到这一点,我可以采用一种解决方案:下载文件,将文件存储到 FS,然后应用 IPTC 数据。

我已经与 https://github.com/dberesford/exiv2node 合作了,但它不适用于 Node.js v10。这取决于exiv2 C++ 库使得容器化运行变得困惑。

所以我的问题是:是否有一个像样的 Node.js 模块可以实现 IPTC 数据写入,并且不依赖于某些怪物 C 库?

最佳答案

我会使用exiftool-vendored ,它只是 the exiftool command line utility 的包装。它还将安装 exiftool 二进制文件,如果您已经安装了 exiftool,则可以使用 exiftool without this binary

安装 exiftool:

npm install --save exiftool-vendored

您添加的标签将放入支持它们的规范中,在本例中为 IPTC。

例如我会添加ArtistCopyright标签,exiftool会放入相应的IPTC标签。

const exiftool = require("exiftool-vendored").exiftool

const tags = {
artist:"David Lemon",
copyright:"2018 David Lemon"
};
exiftool.write("outernet.jpeg", tags);

exiftool.write 将返回一个 promise ,您可以在计算其他事情时等待。 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 - 请推荐一个用于将 IPTC 数据写入图像的 Node 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53515567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com