是否有一种将SVG文件绘制到HTML5画布上的默认方法? Google Chrome支持将SVG作为图像加载(只需使用drawImage),但开发人员控制台会警告该资源被解释为图像,但是以MIME类型image / svg xml传输。
我知道一个可能性是将SVG转换为画布命令(如this question),但我希望不需要。我不在乎旧的浏览器(所以如果FireFox 4和IE 9将支持一些东西,那就够了)。
解决方法
EDIT 2014年11月5日
您现在可以使用ctx.drawImage绘制在一些但不是所有浏览器中具有.svg源的HTMLImageElements。 Chrome,IE11和Safari的工作,Firefox工作与一些错误(但晚上修复它们)。
var img = new Image(); img.onload = function() { ctx.drawImage(img,0); } img.src = "http://upload.wikimedia.org/wikipedia/commons/d/d2/Svg_example_square.svg";
你应该在画布上看到一个绿色的正方形。页面上的第二个绿色方块是相同的< svg>元素插入DOM以供参考。
您还可以使用新的Path2D对象来绘制SVG(字符串)路径(目前仅适用于Chrome)。换句话说,你可以写:
var path = new Path2D('M 100,100 h 50 v 50 h 50'); ctx.stroke(path);
老海报答案:
没有什么本机,允许你在canvas中本地使用SVG路径。你必须转换自己或使用图书馆为你做。
我建议看看canvg: