我在Node.JS中使用Sharp NPM库,并尝试在画布中添加文本。我发现here需要使用.overlayWith()
,以及另一个可以将文本转换为SVG的库。A comment there建议使用text-to-svg或vectorize-text,但这两种方法和text2svg都会返回一个SVG。夏普的.overlayWith()
函数需要一个图像缓冲区。如何将这些库返回的SVG转换为Sharp的图像缓冲区?
发布于 2018-06-03 02:53:30
找到了解决方案: NPM模块SVG2IMG获取SVG字符串并将其转换为图像缓冲区。
发布于 2018-06-07 22:23:19
也许您可以尝试通过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) {});
https://stackoverflow.com/questions/50659033
复制相似问题