说明:canvas和svg都是H5的新特性,canvas是使用js来绘制图形,而svg是使用xml格式来描述图形。
区别:
(1)SVG 是一种使用 XML 描述 2D 图形的语言。Canvas 通过 JavaScript 来绘制 2D 图形。
(2)SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。 在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。他可伸缩,在任何分辨率下都能被高质量的打印
(3)Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。
(4)canvas依赖分辨率;SVG不依赖分辨率
(5)canvas可以以.png或.jpg的格式保存图像;而SVG复杂度高,渲染速度特别慢
(6)canvas适合图像密集型的游戏;SVG不适合游戏应用
canvasAPI:HTML 画布 | 菜鸟教程
svgAPI:SVG 教程 | 菜鸟教程