可缩放矢量图形

科技工作者之家 2020-11-17

可缩放矢量图形(英语:Scalable Vector GraphicsSVG)是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。SVG由W3C制定,是一个开放标准。

SVG概述SVG从1999年由一组加入W3C的公司启动开发,与之前1998年提交给W3C的标准(PGML、VML)构成竞争。SVG从这两个格式吸取了经验。

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

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

SVG格式具有以下优点:

图像文件可读,易于修改和编辑(理论上如此,但实际上却是因为各种不同的SVG档编辑器而可能存储成不易解读的SVG文件)

与现有技术可以互动融合。例如,SVG技术本身的动态部分(包括时序控制和动画)就是基于SMIL标准。另外,SVG文件还可嵌入JavaScript(严格地说,应该是ECMAScript)脚本来控制SVG对象

SVG图形格式可以方便的创建文字索引,从而实现基于内容的图像搜索

SVG图形格式支持多种滤镜和特殊效果,在不改变图像内容的前提下可以实现位图格式中类似文字阴影的效果。

SVG图形格式可以用来动态生成图形。例如,可用SVG动态生成具有交互功能的地图,嵌入网页中,并显示给终端用户。

SVG格式具有以下缺点:

如何和已经占有重要市场份额的矢量图形格式Adobe Animate竞争的问题。事实上,Adobe Animate在Flash CC 2014版及以后的版本就都支持直接导出SVG文件了。

SVG的本地运行环境下的厂家支持程度。

由于原始的SVG档是遵从XML语法,导致数据采用未压缩的方式存放,因此相较于其他的矢量图形格式,同样的文件内容会比其他的文件格式稍大。Adobe因此使用gzip压缩开发出压缩的SVG档格式,附档名为 .svgz, 但此种文件格式除了Adobe旗下的软件以外,未被广泛支持使用。

旧版的SVG Viewer无法正确显示出使用新版SVG格式的矢量图形。

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

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

SVG animation主条目:SVG动画

SVG技术细节SVG主要支持以下几种显示对象:

矢量显示对象,基本矢量显示对象包括矩形、圆、椭圆、多边形、直线、任意曲线等

嵌入式外部图像,包括PNG、JPEG、SVG等

文字对象

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

标准制定开发历史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目前推荐的标准。

W3C目前仍正在研究制定SVG 2。

本词条内容贡献者为:

刘燕兵 - 副研究员 - 中国科学院信息工程研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。