我想要加载一个SVG图片,对其进行一些操纵,然后将其绘制到画布上。
这里有一个很好的示例,可以将SVG绘制到画布上:http://www.phrogz.net/tmp/canvas_from_svg.html
但是在这个示例中,SVG被创建为一个new Image('url.svg')
对象。当你以这种方式创建SVG时,不幸的是似乎没有一个contentDocument来操作。只有当你将SVG创建为一个<object>
元素时才会有一个contentDocument。
但是当我将SVG创建为一个对象,获取SVG的DOM节点并将其传递给context.drawImage(svgNode, x, y)
时,在Firefox上它会抛出错误"Value could not be converted to any of: HTMLImageElement, HTMLCanvasElement, HTMLVideoElement."
。
看起来我要么找到一种方法将对象-SVG转换为HTMLImageElement,要么找到一种方法获取以图像形式加载的SVG的content document。是否有人知道如何做到这两点?或者是否有我所错过的第三种方法?