节点.JS - SVG 到 Sharp 的 overlayWith() 函数的图像缓冲区?



我正在使用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) {});

最新更新