Canvas 和 SVG 的主要区别

1,030 阅读1分钟

Canvas 通过 JS 和 HTML<canvas> 来绘制 2D 图形,能够以 .jpg 或 .png 格式保存图像;

SVG 是基于 XML 来描述二维矢量图形的语言。

主要区别

  1. 从功能上来看,二者都是用来绘制 2D 图形的,但 Canvas 画的是位图,逐像素进行渲染,放大之后会失真,而 SVG 绘制的矢量图其质量不受缩放影响。

  2. SVG 支持分层,可以对单独的标签进行修改,Canvas 修改的话,需要将整个画布重新渲染。

  3. SVG 节点过多时,渲染速度会减慢,Canvas 性能更好一些,但写起来更复杂。

  4. SVG 支持事件处理器,而 Canvas 不支持。

  5. SVG 适合带有大型渲染区域的应用程序,不适合游戏;Canvas 适合图像密集型的游戏,因为其中的很多对象会被频繁的重绘。