我正在使用带有Node.JS的Sharp NPM库,而我正试图在我的画布上添加文本。我发现here我需要使用.overlayWith()
,以及另一个可以将文本转换为SVG的库。 A comment there建议使用text-to-svg或vectorize-text,但这两者与text2svg一起返回SVG。 Sharp .overlayWith()
函数需要图像缓冲区。如何将这些库返回的SVG转换为图像Buffer for Sharp?
答案 0 :(得分:0)
找到解决方案:NPM模块SVG2IMG获取SVG字符串并将其转换为图像缓冲区。
答案 1 :(得分:0)
也许您可以尝试通过svg.js,
构建所有svg上下文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) {
});