我有一堆 SVG 文本需要绘制到画布上。我正在将我的 SVG 对象转换为 SVG 数据 URI,将其应用于图像的源,然后将该图像绘制到画布上,但由于某种原因,它会在一定宽度和高度后剪切文本。
我知道问题不在于画布大小,因为我还首先将其他图像绘制到画布上(这比文本更宽更高),没有任何问题。另一个奇怪的事情是,如果我把图像附加到身体上,它就会完美地呈现出来。
var imageText = new Image();
imageText.src = "data:image/svg+xml;base64," + btoa($("#text_container").html());
imageText.onload = function() { context.drawImage(imageText, 0, 0); };
#text_container 是我的 DIV,它包含所有 SVG 代码。
编辑:为了提供更多细节,这是我在下面写的评论:我正在构建一个 JS 应用程序,让用户创建自定义足球。您可以更改球和文本的不同颜色和特征,因此可以归结为带有一些 SVG 文本的多个 DIV(因为文本沿着弧形路径移动)。我可以获取 DIV 的背景图像并将其绘制到画布上,以创建足球。当我尝试将文本绘制到画布上时遇到问题,因为它正在被裁剪。然后我将把那个画布元素转换成 PNG 供用户保存。
我将文本向上和向左移动更多,以便您可以更好地看到裁剪。如您所见,球抽得很好。 http://i.imgur.com/Sngu4.png