我正在使用 Sharp NPM 库和 Node.JS,并且我正在尝试向画布添加文本。我发现 here 我需要使用
.overlayWith()
以及另一个可以将文本转换为 SVG 的库。 那里的评论建议使用text-to-svg或vectorize-text,但这两者与text2svg一起返回一个SVG。 Sharp 的 .overlayWith()
功能需要图像缓冲区。如何将这些库返回的 SVG 转换为 Sharp 的图像缓冲区?
找到了解决方案:NPM模块SVG2IMG采用SVG字符串并将其转换为图像缓冲区。
也许你可以尝试通过 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) {});