- Canvas 主要是用笔刷来绘制 2D 图形的。
- SVG 主要是用标签来绘制不规则矢量图的。
- 都是主要用来画 2D 图形的。
- Canvas 画的是位图,SVG 画的是矢量图。
- 什么是位图: 位图图像(bitmap), 亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以看见赖以构成整个图像的无数单个方块
- 什么是矢量图: 矢量图是根据几何特性来绘制图形,矢量可以是一个点或一条线,矢量图只能靠软件生成,文件占用内在空间较小,因为这种类型的图像文件包含独立的分离图像,可以自由无限制的重新组合。它的特点是放大后图像不会失真,和分辨率无关
- SVG 节点过多时渲染慢,Canvas 性能更好一点,但写起来更复杂。
- SVG 支持分层和事件,Canvas 不支持,但是可以用库实现。