Пожалуйста, порекомендуйте Node модуль для записи данных IPTC в изображения? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть сервер node.js, задачей которого является загрузка изображений JPEG, запись определенных данных в пару полей IPTC (например, Iptc.Application2.Caption) и передача изображения в другой сервис.

В идеалеЯ хотел бы записать данные IPTC в буфер в памяти (без записи изображения в локальную файловую систему).В противном случае я могу жить с решением, которое я загружаю, сохраняю файл в FS, затем применяю данные IPTC.

У меня это работает с https://github.com/dberesford/exiv2node,, но это не такработа на node.js v10.И это зависит от exiv2 библиотеки C ++, которая мешает запускать контейнеры.

Итак, мой вопрос: существует ли приличный модуль узла, который позволяет записывать данные IPTC, и не зависит от некоторыхБиблиотека монстра C?

1 Ответ

0 голосов
/ 30 ноября 2018

Я бы использовал exiftool-vendor , это просто оболочка для утилиты командной строки exiftool .Он также установит двоичный файл exiftool, если вы уже установили exiftool, вы можете использовать exiftool без этого двоичного файла

Установить 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верните обещание, которое вы можете ждать, вычисляя другие вещи. Подробнее об обещаниях .

С помощью интерфейса командной строки exiftool вы можете проверить, хорошо ли записаны теги в файл:

$ 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
[...]
...