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

0s7z1bwu  于 12个月前  发布在  Node.js
关注(0)|答案(2)|浏览(117)

我在Node.JS中使用Sharp NPM库,并试图将文本添加到画布中。我发现我需要使用here,沿着另一个可以将文本转换为SVG的库。那里的一条评论建议使用text-to-svgvectorize-text,但这两个,沿着text2svg,返回一个SVG。夏普的.overlayWith()函数需要一个图像缓冲区。我如何将这些库返回的SVG转换为夏普的图像缓冲区?

llycmphe

llycmphe1#

找到了解决方案:NPM模块SVG2IMG获取SVG字符串并将其转换为图像Buffer。

3npbholx

3npbholx2#

也许你可以尝试通过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) {});

相关问题