#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);
}