Node.JS - SVG в буфер изображения для функции Sharp overlayWith ()? - PullRequest
0 голосов
/ 02 июня 2018

Я использую библиотеку Sharp NPM с Node.JS и пытаюсь добавить текст на свой холст.Я обнаружил здесь , что мне нужно использовать .overlayWith() вместе с другой библиотекой, которая может конвертировать текст в SVG. Комментарий там предложил использовать text-to-svg или vectorize-text , но оба из них, наряду с text2svg , возвращаютSVG.Функция .overlayWith() Sharp требует буфера изображения.Как я могу преобразовать SVG, который возвращают эти библиотеки, в буфер изображений для Sharp?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Может быть, вы можете попытаться построить свой весь контекст SVG с помощью svg.js ,

var draw = SVG(document.documentElement).size(width, height);
draw.text(text).font({
 family: 'tAsset.fontFamily',
 size: 'fontHeight',
 leading: '1.2em',
 anchor: "middle"
});
return draw.svg();

, а затем использовать возвращенное значение в точном с созданием нового буфера (SVG).

sharp(buffer).overlayWith(new Buffer(svg), {
                top: model.top,
                left: model.left
            }).toBuffer(function (error, data, info) {

            });
0 голосов
/ 02 июня 2018

Обнаружено решение: модуль NPM SVG2IMG принимает строку SVG и преобразует ее в буфер изображения.

...