Как я могу загрузить изображение из файла на стороне сервера и применить к нему фильтры?Мне нужно что-то вроде ниже.Функция, которая получает список фильтров и загружает изображение из пути, применяет фильтры и сохраняет изображение в другом пути.
const fabric = require('fabric').fabric;
const fs = require('fs');
const imageSize = require('image-size');
module.exports = {
applyFilters(filters, imagePath, outputPath) {
const out = fs.createWriteStream(outputPath);
const { width, height } = imageSize(imagePath);
const canvas = fabric.createCanvasForNode(null, { width, height });
fabric.Image.fromPath(imagePath, function(img) {
for (const filter of filters) {
img.filters.push(filter)
}
img.applyFilters();
canvas.add(img);
});
const stream = canvas.createPNGStream();
stream.on('data', function(chunk) {
out.write(chunk);
});
},
}
Очевидно, fabric.Image.fromPath
не существует, поэтому яв поисках чего-то эквивалентного.Изображения будут загружены в большом количестве и будут находиться по пути относительно сервера.Я бы использовал fromUrl
в качестве последнего ресурса, но я бы хотел не показывать исходные изображения.