什么是SVG(可升级矢量图形)
作者:蔡发明 来源:SVG中国 发布时间:2008-05-06 12:37:00
SVG是XML来描述二维图形的语言。SVG可以构造3种类型的图形对象:矢量图形、位图图象和文字。图形对象可被组化、样式化、变形和重组,包括图象嵌套、变形处理、剪辑路径、Alpha蒙板、滤镜特效和模板对象。
1 SVG概述
SVG图形可以是动态的、可交互性的。动画通过直接声明(比如在SVG里嵌入SVG动画元素)或通过脚本来进行定义或触发。
SVG通过使用脚本语言来完成比较复杂的应用,脚本语言调用SVG对象模型(SVG Document Object Model)来访问或控制所有的元素、属性和属性值。事件处理器如onmouseover、onclick等可以应用到SVG图形对象上,由于SVG和其他Web标准完全兼容和同步,如XML,CSS2,XSLT,DOM2,SMIL,XLINK,HTML等。因此,在同一Web页面上,有些特性,如脚本编程等,可以同时应用在XHTML和SVG元素上。
SVG不但可以表现图像,还可以表现文字、音频等其他信息,对于那些有视觉障碍的人,可以通过可替换的方法把图像替换为音频信息,这样对那些有视觉障碍的人,也能够得到SVG所表现的信息。另外,对那些手持设备、车载设备、无线设备来说,它们的屏幕一般都比较小,而且显示分辨率低,SVG的矢量特性也可以让这些设备清楚地浏览SVG图像信息,这都是目前的位图图像所不能做到的。
2 SVG是什么?
SVG是可升级矢量图形(Scalable Vector Graphics)的简称。
可升级(Scalable)意味着统一地增加或减少。对图像来说,可升级意味着图像尺寸并不限定固定的大小,对互联网(Internet)来说,可升级意味着一个特殊的技术,它能够增加文件数量、用户数量和应用的种类。SVG作为Web上的一个技术之一,可升级含有这两方面的意思。
SVG图像可升级到不同的显示的分辨率,例如:相同尺寸的SVG图像,打印输出使用高分辨率,而在屏幕显示时可以使用不同的分辨率。同一个SVG图像能够以不同的尺寸放到同一页面上,也可以被不同的其他页面所使用。我们可以放大一个SVG图像,来了解其精美的细节信息。
SVG是可升级的,原因还在于:同一段 SVG内容,既可以是独立的图像,也可以被引用到一个页面,也可以嵌入到另外的SVG图像中。因此,一个复杂的SVG图像可以有多部分组成,也可以由多人共同完成。符号、标记、字体能够重复利用图形的某些组成部分,这样可以充分利用HTTP的缓存优势。
矢量图像包含有诸如直线和曲线等几何对象。这相对于以像素保存信息的位图格式的图像(如PNG、JPEG)来说有更大的灵活性。矢量格式图像的最大好处就是,它可以和位图图像集成在一起,也可以把他们和矢量信息结合在一起以产生更加完美的图像。SVG也不例外。
由于所有的显示器都是基于点阵的,位图图像和矢量图像的差别就归结为他们是在客户端还是在服务器端进行图像展现处理;SVG能够控制图像展现的过程,不至于出现粗糙或带锯齿的图像。SVG还能够提供客户端的滤镜效果。
大多数XML语法描绘的都是文字信息或原始数据,他们不能提供图像的能力,SVG能够提供丰富的、结构化的矢量和矢量与图像混合的图像信息。
XML是W3C的推荐标准,用于结构化的信息交换,已经得到广泛的普及和应用。SVG是建立在此基础上的,有很明显的优势,比如:广泛的国际化基础,强大的结构化能力,以及对象模型等。
样式单能够很好地控制文字的外在表现方式,它的灵活性、快速下载和易于维护的特性早已被人们接受,SVG把这种技术扩展到了图像世界中。脚本编程、 DOM对象和CSS样式单的组合常被人们称作Dynamic HTML,广泛应用在动画制作、交互性和外在的表现效果中,SVG也可以借助脚本语言进行操纵文档对象和样式单。
猜你喜欢
- 由于新版站长资讯即将发布,我每天都在想如何防止采集,目前想到的几种办法:1、多做几个列表和内容模板,随机使用,对目前大多数cms来说,这种方
- 在开始聊我在阿里四个月的网页推广设计之前,我想先来说说我对平面设计和网页设计的认识。它们之间的交集。它们都是集艺术创作、电脑技术和数字技术于
- 在一个群上看到好几次问到call和apply的作用,function这两个方法的效果大家都很容易理解,但一般很难让人深刻地理解使用它们的时机
- MySQL字符集多种多样,下面为列举了其中三种最常见的字符集查看方法,该方法供您参考,希望对学习MySQL数据库能有所启迪。一、查看MySQ
- 本文介绍使用ADODB.Stream组件来下载服务器文件,例如:download.asp?file=相对路径的文件。就可以把这个文件下载下来
- JavaScript中的字符串函数没有像VBScript\ASP中的内部函数那么全.不能像VB那样直接利用left和right函数来实现对字
- 在认识ImageMagick之前,我使用的图像浏览软件是KuickShow,截图软件是KSnapShot,这两款软件都是KDE附带的软件,用
- 简单的说,组织体系指的就是组织信息的方式。看了一堆拗口的定义后,我根据自己的理解画了下面这个图:从上图看出,同样的图形元素由于采用了不同的组
- 在网站开发的时候经常要用chr(),但本人比较懒没时间记那么多。于是到用到的时候就查,这样麻烦。现在将它写出来方便以后用到查,也方便大家!c
- A 定义数组有两种方式:DIM和REDIM。DIM定义的是固定个数、数据类型的数组;而REDIM则不同,它可以定义不同类型的数据,也可以定义
- staytime.asp<% If Request.QueryString("time")&n
- Google Chrome 的发布,使我们更加的注重基于 WebKit 核心的浏览器的表现情况,但我们很多时候“不小心”就会出现
- PHP是一种面向对象的编程语言,它允许开发者使用面向对象的编程技术来构建复杂的应用程序。下面是一些关于PHP面向对象编程的讲解:类与对象类是
- 您可以使用 ObjectContext 对象提交或放弃一项由 Microsoft Transaction Server (MTS) 管理的事
- 呵,以前也没考虑过这方面的东西,现在写的代码越来越多,越来越复杂,如果再不把不用的变量及时释放掉,到时肯定会出问题。今天无意中在无忧Q群里看
- Firefox 2.0 在对 XML 的支持方面有几个重要的改进。目前它的用户部署如日中天。了解 Firefox 2.0 XML 特性的改进
- 我想没多少人敢保证写JavaScript能不用调试,那选择用什么方式调试会比较好呢?告别了我最爱的alert("MM")
- sql语句查询数据库中的表名/列名/主键/自动增长值 ----查询数据库中用户创建的表 ----jsj01 为数据库名 select nam
- 服务器现在同时输出json和xml两种数据,取决于服务程序和页面之间的约定。在程序遇到问题的时候会返回错误信息,也按照相同的约定会返回jso
- 函数名:chk_Email()'返回值:布尔值(True为通过,False为未通过)'参数:email(需要判断的email