在HTML5画布上绘制支持字体元素的SVG

前端之家收集整理的这篇文章主要介绍了在HTML5画布上绘制支持字体元素的SVG前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有一个很好的库将SVG转换为支持字体元素的HTML画布?我已经尝试了 canvg,但它不支持Font。

解决方法

支持HTML5 Canvas的浏览器本身也支持SVG。因此,您可以这样做:
var img = new Image;
img.onload = function(){ myCanvasContext.drawImage(img,0); };
img.src = "foo.svg";

这种技术的唯一缺点是,如果SVG在您的域外,则画布将被污染;您将无法使用getImageData()来读取生成的SVG,如果这是您的目标。

我把这个技术的例子放在我的服务器上:http://phrogz.net/tmp/canvas_from_svg.html
我已经测试了这一点,并验证它在IE9,Chrome v11b,Safari v5和Firefox v4上的工作原理(看起来一样)。

[编辑]请注意:

Chrome浏览器和Firefox目前在安全性方面“平庸”,并且在将任何SVG绘制到画布上后(不论域名),都不允许您阅读画布(例如getImageData()或toDataURL())these have been fixed> Firefox目前有一个错误,它拒绝将SVG绘制到画布上,除非SVG指定了height和width属性

猜你在找的HTML5相关文章