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