转自:[https://zhuanlan.zhihu.com/p/96444730](https://zhuanlan.zhihu.com/p/96444730)
# SVG 简介
SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种 XML 应用,可以以一种简洁、可移植的形式表示图形信息。目前,人们对 SVG 越来越感兴趣。大多数现代浏览器都能显示 SVG 图形,并且大多数矢量绘图软件都能导出 SVG 图形。SVG 主要可以概括为以下几点:
* SVG 指可伸缩矢量图形
* SVG 用来定义网络的基于矢量的图形
* SVG 使用 XML 格式定义图形
* SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
* SVG 是万维网联盟的标准
* SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体
## SVG 的应用
1. 图表视图(echart)、地图视图(WEB-GIS)
2. 形象(AI)的全网应用
3. UI 产品的设计
4. SVG 动画
### SVG 浏览器的兼容情况
![img](../../../../../../ff_internal/wk_db/ff_internal_upload/img/2024/svg/v2-7038c0ceeff64079e744929d8f2cead7_1440w.png)
## SVG 与 Canvas 区别
![img](../../../../../../ff_internal/wk_db/ff_internal_upload/img/2024/svg/v2-484079f29cbd2c06b1b5d429839d6e79_1440w.png)
# 图形系统
计算机中描述图形信息的两大系统是栅格图形和矢量图形。
## 栅格图形
在栅格图形系统中,图像被表示为图片元素或者像素的长方形数组如下图片所示。每个像素用其 RGB 颜色值或者颜色表内的索引表示。这一系列也称为 **位图**,通过以某种压缩格式存储。由于大多数现代显示设备也是栅格设备,显示图像时仅需要一个阅读器将位图解压并将它传输到屏幕上。
![img](../../../../../../ff_internal/wk_db/ff_internal_upload/img/2024/svg/v2-6bec5eb920a03af89a7226e90717304e_1440w.png)
## 矢量图形
矢量图是基于数学的描述,如下图的多啦A梦,他的头是一条怎么样的贝塞尔曲线,它的参数是什么及用什么颜色来填充贝塞尔曲线,通过这种方式描述图片就是**适量图**。
想象一下在一张绘图纸上作图的过程,栅格图形的工作就像是描述哪个方格应该填充什么颜色,而矢量图形的工作则像是描述要绘制从某个点到另一个点的直线或曲线。
# 创建 SVG 图像
## SVG 文档基本结构
如下所示,是一个 SVG 文档结构:
```text
```
根元素 `