可縮放向量圖形

可缩放矢量图形（，縮寫：）是一种基于可扩展标记语言（XML），用于描述二维矢量图形的图形格式。SVG由W3C制定，是一个开放标准。

 SVG概述 
SVG由1998年成立的W3C SVG工作组启动开发，随着当年提交给W3C的六份标准提案而开展。

SVG允许3种图形物件类型：矢量图形、栅格图像以及文本。图形物件——包括PNG、JPEG这些栅格图像——能够被编组、设计、转换及整合进先前的渲染物件中。文本可以在任何适用于应用程序的XML命名空间之内，从而提高SVG图形的搜索能力和无障碍性。SVG提供的功能集涵盖了嵌套转换、、Alpha通道、滤镜效果、模板对象以及可扩展性。

SVG严格遵从XML语法，并用文本格式的描述性语言来描述图像内容，因此是一种和图像分辨率无关的矢量图形格式。

优点
 图像文件可读，易于修改和编辑（理論上如此，但實際上卻是因為各種不同的SVG檔編輯器而可能儲存成不易解讀的SVG檔案）。
 与现有技术可以互动融合。例如，SVG技术本身的动态部分（包括时序控制和动画）就是基于SMIL标准。另外，SVG文件还可嵌入JavaScript（严格地说，应该是ECMAScript）脚本来控制SVG对象。
 SVG图形格式可以方便的建立文字索引，从而实现基于内容的图像搜索。
 SVG图形格式支持多种滤镜和特殊效果，在不改变图像内容的前提下可以实现位图格式中类似文字阴影的效果。
 SVG图形格式可以用来动态生成图形。例如，可用SVG动态生成具有交互功能的地图，嵌入网页中，并显示给终端用户。

缺点
 SVG的本地运行环境下的厂家支持程度。
 由於原始的SVG檔是遵从XML语法，導致資料採用未壓縮的方式存放，因此相較於其他的矢量图形格式，同樣的檔案內容會比其他的檔案格式稍大。Adobe因此使用gzip壓縮開發出壓縮的SVG檔格式，附檔名為 .svgz， 但此種檔案格式除了Adobe旗下的軟體以外，未被廣泛支援使用。
 舊版的SVG Viewer無法正確顯示出使用新版SVG格式的矢量图形。

 SVG Basic 
SVG Basic又称SVGB，是英语「Scalable Vector Graphics, Basic Profile」的简写，可以翻译为「可缩放的矢量图形标准的基本版」。它是SVG的一个子集，而主要目标是为掌上电脑等高端移动设备提供矢量图形显示格式。

 SVG Tiny 
SVG Tiny又称SVGT，是英语「Scalable Vector Graphics, Tiny Profile」的简写，可以翻译为「可缩放的矢量图形标准的微型简化版本」。它也是SVG的一个子集，而主要目标是为手机等低端移动设备提供矢量图形显示格式。

 SVG动画 

 SVG技术细节 
SVG主要支持以下几种显示对象：
 矢量显示对象，基本矢量显示对象包括矩形、圆、椭圆、多边形、直线、任意曲线等
 嵌入式外部图像，包括PNG、JPEG、SVG等
 文字对象

SVG可以实现动态和交互功能。在DOM模型的基础上，SVG开发设计人员可以利用ECMAScript或者SMIL来进行时序控制或对象的操纵。SVG虽然是文本格式，但是SVG支持利用gzip压缩算法减少文件尺寸，压缩后的文件通常用被称为「SVGZ文件」。

 开发历史 
SVG由1998年成立的W3C SVG工作组启动开发，随着当年提交给W3C的六份标准提案应运而生：
 Web Schematics，来自CCLRC
 ，来自Adobe Systems、IBM、网景和升阳电脑
 VML，来自Autodesk、惠普、Macromedia、微软和Vision
 Hyper Graphics Markup Language (HGML)，来自和普利茅斯大学
 WebCGM，来自波音、InterCAP Graphics Systems、Inso Corporation、CCLRC和施乐
 DrawML，来自Excosoft AB
当时工作组是由W3C的Chris Lilley领衔。

 SVG 1.x 
 2001年9月4日，发布SVG 1.0。
 2003年1月4日，发布SVG 1.1。
 2003年1月14日，推出SVG移动子版本：SVG Tiny和SVG Basic。
 2008年12月22日，發布SVG Tiny 1.2。
 2011年8月16日，發布SVG 1.1（第2版），成为W3C目前推荐的标准。
 SVG Tiny 1.2 Portable/Secure是SVG Tiny 1.2較安全的一個子集，於2020年7月29日作為IETF草案標準推出。

 SVG 2 
SVG 2棄用了SVG 1.1不受所有瀏覽器支援的功能，並整合了HTML5和Web開放字型格式（WOFF）的新功能：

 SVG 2以WOFF取代了多個字體元素，像是glyph和altGlyph。
 xml:space屬性已被棄用，由CSS取而代之。
 新增HTML5的功能，例如translate和data-*屬性。
 SVG Tiny 1.2的文字處理功能在註釋中提及，但尚未在文本中正式化。雖然1.2版中的其他功能也是精心挑選的，但是整體而言，SVG 2並不是SVG tiny 1.2的超集。

W3C目前仍正在研究制定SVG 2，SVG 2於2016年9月15日進入候選推薦階段，修訂版本於2018年8月7日和2018年10月4日發佈。最新草案則於2023年3月8日發佈。

 示例 

SVG格式是XML的一種，意即SVG文件其實只是普通的文本文件，用一般的文本編輯器便可查看或修改。

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" 
    width="467" height="462">
  <!-- This is the red square: -->
  <rect x="80" y="60" width="250" height="250" rx="20" fill="red"
         stroke="black" stroke-width="2px" />
  <!-- This is the blue square: -->
  <rect x="140" y="120" width="250" height="250" rx="40" fill="blue"
         stroke="black" stroke-width="2px" fill-opacity="0.7" />
  <rect x="180" y="160" width="250" height="250" rx="40" fill="blue"
         stroke="green" stroke-width="2px" fill-opacity="0.7" />
</svg>

 SVG显示 
比较著名的SVG项目包括Mozilla SVG Project，KDE的KSVG，以及Amaya等。
 Mozilla Firefox自版本1.5发行后，即开始支援SVG格式的显示 。
 Opera 8.0 版開始支援顯示Tiny 1.1规格的SVG。
 基于Java的SVG项目主要有Batik SVG Toolkit等。
 Google Chrome和Safari支持SVG显示。
 Microsoft的Internet Explorer 8.0版及其更老的版本尚未支援SVG，直至由Internet Explorer 9.0版開始支援SVG。

 设计工具 
能够设计SVG图形作品的软件工具包括開放源代碼的Inkscape、Scribus和Karbon等，還有專有的Adobe Illustrator、Adobe Animate和CorelDRAW等。

另外也有开放源码、功能简单但容易操作、免安装的在线SVG设计工具，例如Svg-edit。

对于移动设备，安卓系统则可以使用Vector Ink。

 參見 
 Canvas (HTML元素)
 图形文件格式比较
 矢量图形编辑器列表
 電腦圖形
 CGM
 图形文件格式

 参考文献 

 外部链接 


 svgwiki
 SVG Web
 Opera開發網站上關于SVG的展示及教程
 W3school上关于SVG的教程 

Category:图形文件格式
Category:矢量图形
Category:标记语言
Category:基于XML的标准
Category:W3C标准
Category:页面描述语言
Category:带有代码示例的条目