我有一堆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是包含所有SVG代码的DIV。
编辑:为了提供更多细节,以下是我写的评论:我正在构建一个JS应用程序,让用户创建自定义足球。您可以更改球和文本的不同颜色和特征,因此它归结为几个带有一些SVG文本的DIV(因为文本沿着弧形路径)。 我可以将DIV的背景图像绘制到画布上,以创建足球。 当我尝试将文本绘制到画布上时,遇到问题,因为它被裁剪了。 然后,我将把该画布元素变成PNG供用户保存。
我将文本向上移动并向左移动,以便您更好地看到裁剪效果。正如您所见,球绘制得非常好。 http://i.imgur.com/Sngu4.png