当前位置:编程学习 > JSP >>

SVG与SWF的对比(别以为这与XML无关啊,这是XML在矢量图形方面的应用)

答案:SVG(Scalable Vector Graphics,可伸缩矢量图形)是W3C组织最新制定的网络矢量图形标准,是作为XML的一个子集提出的。由于它系出名门,加之人们不满原先一统天下的网络矢量图形标准——SWF(Flas易做图格式)的一些不足之处,因此它一问世便受到广泛关注,Sun, Adobe等公司都表示将全力支持SVG。业界人士纷纷把它视为取代SWF格式的希望之星,其追捧程度直逼年Flash有过之而无不及。
  那么,SVG真的有那么强大吗?下面就让我们来看一下SVG与SWF的对决吧。
   文件大小
  对于网络矢量图形来说,最基本的要求就是在储存信息不变的情况下文件要尽可能小,否则在网络上进行传输就相当困难了。那么SVG和SWF哪个更小呢?我作了以下实验。
  我在Adobe Illustrator 9.0中作了一个由紫到橙,由椭圆到六角星的Blend,接着我又在该图中加入了一段文字,最后我向图中导入了一幅640×480的真彩BMP位图,并在每次操作后将图像分别存为SVG,SVGZ和SWF,其大小见表1,由于该图中有矢量图形,文字和位图,因此我相信能比较准确的反映这两种格式对储存同样的各类图形信息所需的空间比。    
  从以上的结果中,我们可以看到在储存性能上,SWF储存同样的图形所用的空间比SVG要小得多,那么难道SVG就这么不堪一击吗?非也,前面我们已经说到SVG格式是一种文本格式,而所有的文本格式都由一个共同的特点,就是压缩比特别高。表1中的第二栏的SVGZ格式就是SVG的压缩格式,也可以由Illustrator 9.0生成。它是采用了Winzip的LZW压缩算法对SVG进行压缩后产生的文件格式(其实质就是一个zip文件,你甚至可以用Winzip把里面的SVG文件重新解压出来,不信你试试?)SVGZ格式也可以直接被浏览器浏览。从表1中可以发现SVGZ的大小就与SWF差不多了,大约只大5%-10%,由于网上发布时所用格式一般都是SVGZ,因此虽然SWF在文件大小上略胜一筹,但SVG/SVGZ还是具有相当的竞争力的。
   整合性和易学性
  以前Flash能够一统网络矢量图的天下,很重要的一点就是因为它可以用action很方便的与其它web元素交互,因而能够很好的与web页面整合。那么SVG又做得怎样呢?呵呵,其实对于SVG来说已经没有什么整合问题了,因为它本身就是web页的一部分,听起来有点金大侠的无剑胜有剑的感觉吧。因为SVG是XML的子集,所以它能够完全融入web页面中。你可以在SVG里使用所有的web页元素,甚至使用CSS, DHTML, VRML, DOM, XSL, javascript等各种W3C标准。由于这种无缝性,在未来当你需要在XML页面的某处加上一个图形时,你也许不再是链接一个JPG或GIF图片,而是直接在该处用SVG写出一个图形来!!这是多么令人期待的应用啊!因此在整合性方面我认为SWF完全不能同SVG匹敌。另外由于SVG是XML的子集,所以它与Html一样,也是一种标记语言,这样对于熟悉Html的人来说,学习SVG将会是件非常容易而令人愉快的事。
   可修改性
  Flash一旦输出成SWF文件就无法修改了,除非你拥有原始的fla文件,虽然现在已经有一些工具可以从SWF中提取出各种元素,但仍不能进行完全的修改。这样虽然可以保护著作权,但对于重用和更新SWF就显得困难了。如果你觉得某个SWF中场景很好想借用,或者你想更改SWF里某一段,可是你没有原始fla,对不起,没有任何办法。可是SVG就不一样,它是文本格式,只要你用记事本打开它,里面所有的秘密你就可以看得一清二楚,就像阅读Html源码一样。你可以很容易的从中学习别人制作SVG的技巧,如果你想偷懒的话,也可以直接copy一段你想要的SVG源码放到你的作品中去(这样做之前不要忘了取得作者的同意哟),至于修改什么,更是不在话下,用记事本就行了,当然随着SVG的流行,会有更多更好用的修改SVG的软件出现的。不过由于SVG的这种特性,使得它和Html一样,源码很难保密,这点可能有些重视知识产权的人会感到不满的。
   公开性和支持度
  SWF是半公开的文件格式,其标准的制定权在Macromedia公司。所以对SWF的第三方支持比较少,到目前只有swish, swift 3D等少数几个软件。而SVG是w3c制定的公开格式,任何公司都可以参与该SVG标准的制定,因此使得该标准更加科学和强大,同时参加制定标准的公司也都会很乐意支持SVG格式。任何公司也都可以采用该格式设计自己的SVG软件,因此就像现在的Html软件一样,未来也会有相当多的软件去支持SVG格式,有竞争才有发展,在激烈的竞争下,SVG软件的易用性一定会大大超过Flash。由于SVG的完全公开性,我相信它未来的发展潜力和支持度应该会大大超过SWF。
   画面质量
  画面质量也是衡量网络矢量图形一个重要的因素,如果画质不好,即使技术再先进,支持度再高也不可能被推广。但从我对从Illustrator中分别输出的SWF和SVG文件的比较来看(SWF采用Flash Player 5.0浏览,SVG采用Adobe SVG Viewer 1.0浏览),两者的画质几乎一样好,完全无法区分优劣。所以在这一点上,双方打成平手。不过由于SVG是一种公开格式,因此未来将会有多个SVG浏览器出现,在各个不同的浏览器中,SVG的表现可能不会完全一致,就像VRML在不同浏览器中的表现不同一样。
  以上我们从5个方面比较了SWF和SVG的性能,从比较中可以发现SVG确实是一种相当先进,有前途的网络矢量图形格式,在各项指标上都不输给SWF,而且还具有自己独特的优势,因此在未来的一两年内,可能会有很大的发展。如果Macromedia不能很好面对它的挑战,改进Flash技术的话,SVG就完全有可能取代Flash成为网络图形新霸主。不过它目前的问题就是软件支持还比较少,使用的人还不多,但由于它的公开性,这种情况很快就会改善。所以像我一样喜爱Flash技术的朋友们,一定要多多留心SVG的发展,以免将来SVG大潮到来时被它所抛弃呀。(2001年2月19日18:10:25 华好网景 陈灏)


上一个:SOAP教程 (-)
下一个:本人的实际应用SVG--flash的掘莫者(俺开发过的,今天就先到这里,否则有灌水之嫌)

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,