摘要:SVG(可擴展矢量圖形)是一套基于XML的二維可縮放矢量圖形規范。其應用主要是在網絡地圖方面,然而傳統方法在該應用中存在很多發展瓶頸,諸如空間信息的動態變化實現困難、GIS數據共享、傳輸速度不容樂觀等。SVG圖像技術具有適合網絡發布的優點,能有效解決目前地圖網絡發布面臨的難點問題。該文討論了SVG語法規范,并給出SVG在圖象領域中的應用實例,得出SVG在網絡應用領域優于傳統表示方式的結論。
關鍵詞:SVG;SVG規范;SVG圖象技術;圖象;應用
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)02-436-01
SVG(Scalable Vector Graphics)是W3C組織為適應Internet應用的飛速發展需要而制定的一套基于XML語言的二維可縮放矢量圖形語言描述規范。國內外的SVG應用主要是在網絡地圖方面,然而傳統的HTML靜態頁面描述語言的采用的標記固定、有限且無內涵、不支持矢量圖形等缺點日益暴露出來,已經越來越滿足不了網絡地圖的要求。
目前在Web頁面中嵌入圖形格式分為兩大類:位圖格式和矢量圖格式。位圖圖像是用像素來描述圖像屬性的。通常看到的位圖文件格式有BMP,JPG,GIF等。與位圖不同的是,矢量圖形是基于面向對象的,它利用矢量來描述圖像屬性。所以相對位圖格式,它的體積一般都很小。比較知名的矢量圖形格式有CDR文件等。但是矢量圖形在精度、兼容性等方面卻存在很大缺陷。
以上提到的圖形技術存在很多不足之處,位圖文件通常占用空間比較大,而且不適宜縮放,在Web頁面上的下載和顯示都很受限制。而矢量圖的文件格式又存在顯示精度不夠、技術相對封閉、兼容性不高的缺點。所以基于以上的缺陷若要在Web頁面上實現高質量(分辨率,低容量)的地圖文件,需要一種全新的圖形技術來解決這個矛盾。XML作為公認的世界未來統一格式標準已經為越來越多的領域所應用。SVG作為XML的一個描述矢量圖形的子集的出現,為解決網絡地圖面臨的靜態性,數據格式多樣性,平臺相關的Web內容表現和缺乏交互性,網絡傳輸慢等問題提供了一個全新的解決方法。本文簡明扼要的介紹SVG圖象技術,最后給出一個典型實例來加以說明。
1 SVG圖象技術
SVG,可擴展矢量圖形規范是一種基于XML 的用來描述二維矢量圖形和矢量/點陣混合圖形的置標語言。其中,\"可擴展\"(scalable)在圖形圖像技術上指的是它不局限于一個固定的分辨率和大小,譬如可以在不同分辨率的屏幕上以相同的大小顯示,也可以在同一個網頁中以不同的大小或觀全局或觀細節;而在網絡技術上指的是這一規范能夠與其它規范相融合,從而滿足更廣泛的用戶需求,適合于更廣泛的應用方式。\"矢量\"(vector)是指規范中描述了直線、曲線、形狀等幾何圖形,而無須象PNG、JPEG等圖像格式那樣逐象素進行描述,這使得集成了SVG的XML文檔更小,下載速度也大大提高。\"圖形\"(graphics)是指它提供了對矢量和矢量/柵格混合圖形的描述,填補了大多數基于XML的置標語言規范對復雜圖形描述的空白。目前,Mozilla瀏覽器已經實現內嵌支持SVG,Firefox從1.5版本開始支持SVG1.1的一個子集。但IE和Netscape等Web瀏覽器都不能直接支持SVG文件的編譯和瀏覽,必須安裝SVG圖形瀏覽插件。Adobe就提供了一套非常優秀的免費插件Adobe SVG Viewer。
SVG規范定義了SVG的特征、語法和顯示效果,包括模塊化的XML命名空間(namespace)和SVG文檔對象模型(DOM)。其中DOM定義了XML和HTML文檔的邏輯結構,給出了一種訪問和處理XML和HTML文檔的方法。在應用程序中,基于DOM的XML分析器將一個XML文檔轉換成了一個對象模型的集合(這個集合中被稱為DOM樹),開發人員通過對該對象模型的操作,來實現動態的創建XML文檔,遍歷文檔結構,添加、修改、刪除等操作。在實際操作中,SVG的繪圖則是以嵌入方式或腳本方式來實現的。SVG定義了豐富的事件,如鼠標,鍵盤,用戶界面事件等,這些事件可以應用于所有的圖形對象。高級網頁制作者僅須進行簡單的JavaScript編程,訪問SVG DOM的元素和屬性,即可響應特定的事件,從而提高了SVG的動態和交互性能。
2 實例應用
SVG作為XML的一個子集,完全遵從XML的語法規范和標準,下面通過一個實例來說明。詳細的語法規范見W3C標準組織的官方網站公布的SVG格式規范(V1.2)。
SVG文件必須保存擴展名為“.svg”格式。用瀏覽器打開svg文件即可。此SVG文件只占用了495字節的空間就可以描述文字、圖形、線段等內容,遠遠小于一副圖象的空間,由于SVG圖象是矢量圖形,我們也可以方便地在該文件中檢索文字、圖形等數據。
3 結束語
本文介紹了SVG圖象及其在網絡中的應用,從實例中可以看出SVG在網絡領域中有著廣泛的應用前景。
參考文獻:
[1] 裴玉.基于SVG的自適應軟件界面開發工具設計與實現[J].計算機科學,2008,35(1):271-273.
[2] 劉嘯.基于XML的SVG應用指南[M].北京:科海電子出版社,2001.
[3] 周文生.基于XML的開放式萬維網地理信息系統的理論與實踐[D].武漢:武漢大學,2002.