v4.0.0-rc3: SVG 文本渲染不起作用
作者: iamlemec创建于 2026年8月30日更新于 2026年8月30日
标签Bug
最小重现: js import { createCanvas, loadImage } from 'canvas' const svg = <svg xmlns="http://www.w3.org/2000/svg" width="200" height="100"> <text x="10" y="60" font-family="sans-serif" font-size="40" fill="red">Hello</text> </svg> const img = await loadImage(Buffer.from(svg)) const canvas = createCanvas(200, 100) const ctx = canvas.getContext('2d') ctx.drawImage(img, 0, 0) 结果是一个空白输出图像。 问题在于,使用 lunasvg 时,检索器/测量器/绘制器回调没有被设置。因此,它无法获取字体数据,即使有,文本也不会被测量或绘制。也没有 SVG + 文本测试。 我也已经准备好了修复,两个 PR:一个在这里,一个在 lunasvg 分支中。基本上,它将这些回调连接起来,并将其传递给 fillText 中使用的现有函数。我想确保这是一个真正的问题,然后再继续。 请查看 fork 这里: node-canvas 和 lunasvg。
内容来源: Automattic/node-canvas