Node.JS - 将 SVG 转换为 Sharp 的 overrideWith() 函数的图像缓冲区?

问题描述 投票:0回答:2

我正在使用 Sharp NPM 库和 Node.JS,并且我正在尝试向画布添加文本。我发现 here 我需要使用

.overlayWith()
以及另一个可以将文本转换为 SVG 的库。 那里的评论建议使用text-to-svgvectorize-text,但这两者与text2svg一起返回一个SVG。 Sharp 的
.overlayWith()
功能需要图像缓冲区。如何将这些库返回的 SVG 转换为 Sharp 的图像缓冲区?

javascript node.js svg buffer sharp
2个回答
0
投票

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


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) {});
© www.soinside.com 2019 - 2024. All rights reserved.