1

我正在使用带有 Node.JS 的Sharp NPM 库,并且正在尝试将文本添加到我的画布中。我在这里发现我需要使用.overlayWith(),以及另一个可以将文本转换为 SVG 的库。那里的评论建议使用text-to-svgvectorize-text,但这两者以及text2svg 都会返回 SVG。Sharp 的.overlayWith()功能需要一个图像缓冲区。如何将这些库返回的 SVG 转换为 Sharp 的图像缓冲区?

4

2 回答 2

0

找到解决方案:NPM 模块SVG2IMG采用 SVG 字符串并将其转换为图像缓冲区。

于 2018-06-02T18:53:30.490 回答
0

也许您可以尝试通过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) {});
于 2018-06-07T14:23:19.097 回答