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