我正在使用Sharp的NPM库和Node.JS并且我正在尝试将文本添加到我的画布中。我在这里发现我需要使用.overlayWith()
,以及另一个可以将文本转换为 SVG 的库。那里的注释建议使用text-to-svg或vectorize-text,但这两个以及text2svg都返回SVG。夏普的.overlayWith()
函数需要一个图像缓冲区。如何将这些库返回的 SVG 转换为夏普的图像缓冲区?
找出解决方案: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) {});