节点 - 从图像缓冲区解析 iptc 数据

node - Parse iptc data from image buffer

试图找到一种从图像文件缓冲区中提取 IPTC 数据的方法,npm 上现有的库允许您从本地文件系统打开和读取文件,但我将文件存储在 AWS S3 上并且会更喜欢使用缓冲区而不是创建不必要的磁盘写入。

不确定从哪里开始,也许可以开始查看此模块的工作原理: https://www.npmjs.com/package/extract-iptc 并创建我自己的模块?还是我错过了更简单的方法?

我能够使用

提取 IPTC 数据
var iptc = require('node-iptc');
var iptc_data = iptc(imageData);

还有一个同构库 exifr 可以在 Node.js 和浏览器中使用。它也适用于新的 HEIC 图像格式。

exifr.parse(input, {iptc: true}).then(output => {
  console.log('IPTC', output)
})

它解析多种格式(TIFF/EXIF、ICC、IPTC、XMP、JFIF),但 IPTC 默认情况下未启用,因此您需要在选项中启用它,如示例所示。