Node.JS - SVG в буфер изображения для функции Sharp overlayWith()?

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

2 ответа

Решение

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

Может быть, вы можете попытаться построить весь контекст 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) {

            });
Другие вопросы по тегам