在HTML5画布上绘制SVG文件

前端之家收集整理的这篇文章主要介绍了在HTML5画布上绘制SVG文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有一种将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);

Live example of that here.

老海报答案:

没有什么本机,允许你在canvas中本地使用SVG路径。你必须转换自己或使用图书馆为你做。

我建议看看canvg:

http://code.google.com/p/canvg/

http://canvg.googlecode.com/svn/trunk/examples/index.htm

原文链接:https://www.f2er.com/html5/170139.html

猜你在找的HTML5相关文章