Конвертировать tiff в jpeg в node.js и GraphicsMagick

#node.js #gm

#node.js #gm

Вопрос:

Как я мог бы преобразовать tiff в jpg в node.js и GraphicsMagick gm (https://aheckmann.github.io/gm /)?

Я хочу сделать это на AWS lambda, поэтому не могу write() перейти на диск как таковой.

Ответ №1:

Просто укажите расширение файла, которое вы хотите использовать для .write() метода, и gm автоматически преобразует его в этот формат.

 const gm = require('gm');

gm('sample.tiff')
  .write('out.jpeg', function (err) {
    if (err) console.log(err);
}); 
  

Если вам нужно выводить в виде буфера вместо записи на диск, вы можете использовать .toBuffer() метод:

 gm('sample.tiff')
  .toBuffer('jpeg', function (err, buffer) {
    if (err) console.log(err);
});
  

Комментарии:

1. Спасибо, можно ли это сделать с помощью буферов? (Я запускаю это на AWS lambda и не могу записать на диск)

2. Да, вы также можете вернуть изображение в виде буфера.

Ответ №2:

Я не знаю, что не так, но с этой библиотекой у меня это не работает. Если я использую:

https://www.npmjs.com/package/jimp

у меня это работает. Может быть, это кому-то поможет.

 const Jimp = require('jimp');

try {
  const readFile = await Jimp.read(filePath)
  await readFile.writeAsync(pathToConvertedFile)
  const buffPng = await fs.readFile(pathToConvertedFile);
} catch (err) {
  console.log(err);
}