FabricJS загрузить изображение с пути на стороне сервера? - PullRequest
0 голосов
/ 15 апреля 2019

Как я могу загрузить изображение из файла на стороне сервера и применить к нему фильтры?Мне нужно что-то вроде ниже.Функция, которая получает список фильтров и загружает изображение из пути, применяет фильтры и сохраняет изображение в другом пути.

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

...