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

Node.JS - SVG to Image Buffer for Sharp's overlayWith() Function?

我正在使用 Sharp NPM library with Node.JS and I'm trying to add text to my canvas. I found out here that I need to use .overlayWith(), along with another library that can convert text to an SVG. A comment there suggested to use text-to-svg or vectorize-text, but both of those, along with text2svg、return SVG。 Sharp 的 .overlayWith() 函数需要图像缓冲区。如何将这些库 return 的 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();

然后在 sharp 中使用返回值创建新的 Buffer(svg)。

sharp(buffer).overlayWith(new Buffer(svg), {
  top: model.top,
  left: model.left
}).toBuffer(function (error, data, info) {});