我想加载SVG图像,对其.contentDocument
进行一些操作,然后将其绘制到画布上。将修改后的SVG绘制到画布上
一个很好的例子绘制一个SVG的画布是在这里:http://www.phrogz.net/tmp/canvas_from_svg.html
但在这个例子中,SVG被作为new Image('url.svg')
对象创建的。当你这样创建一个SVG时,它不幸似乎没有一个contentDocument来操作。当您将它创建为<object>
元素时,它似乎只有一个。
但是,当我创建SVG作为对象时,获取SVG的DOM节点并将其传递给context.drawImage(svgNode, x, y)
,它会抛出错误"Value could not be converted to any of: HTMLImageElement, HTMLCanvasElement, HTMLVideoElement."
(在Firefox上)。
看来我要么必须找到一种方法将对象SVG转换为HTMLImageElement或获取作为图像加载的SVG的内容文档的方式。有谁知道如何做?还是有第三种方法来做到这一点,我失踪了?
也许有可能打开SVG内容文档转换成的ObjectURL并使用它来创建一个图片就像这个例子:https://developer.mozilla.org/en-US/docs/HTML/Canvas/ Drawing_DOM_objects_into_a_canvas – Philipp