轉(zhuǎn)自:
http://www.souzz.net/html/svg/1/33990.htmlW3C文檔:
http://www.w3.org/TR/SVG11/中文教程:
http://www.w3school.com.cn/svg/index.asp
SVG是一種采用XML來描述二維圖形的語言。SVG可以構(gòu)造三種類型的圖形對(duì)象:矢量圖形、位圖圖象和文字。圖形對(duì)象可以被組化、樣式化、變形和重新組合,包括圖象嵌套、變形處理、剪輯路徑、Alpha蒙板、濾鏡特效和模板對(duì)象。
SVG圖形可以是動(dòng)態(tài)的、可交互性的。動(dòng)畫通過直接聲明(比如在SVG里嵌入SVG動(dòng)畫元素)或通過腳本來進(jìn)行定義或觸發(fā)。
SVG通過使用腳本語言來完成比較復(fù)雜的應(yīng)用,腳本語言調(diào)用SVG對(duì)象模型(SVG Document Object Model)來訪問或控制所有的元素、屬性和屬性值。事件處理器如onmouseover、onclick等可以應(yīng)用到SVG圖形對(duì)象上,由于SVG和其它Web標(biāo)準(zhǔn)完全兼容和同步,如XML,CSS2,XSLT,DOM2,SMIL,XLINK,HTML等。因此,在同一Web頁面上,有些特性,如腳本編程等,可以同時(shí)應(yīng)用在XHTML和SVG元素上。
SVG不但可以表現(xiàn)圖象,還可以表現(xiàn)文字、音頻等其它信息,對(duì)于那些有視覺障礙的人,可以通過可替換的方法把圖象替換為音頻信息,這樣對(duì)那些有視覺障礙的人,也能夠得到SVG所表現(xiàn)的信息。另外,對(duì)那些手持設(shè)備、車載設(shè)備、無線設(shè)備來說,它們的屏幕一般都比較小,而且顯示分辨率低,SVG的矢量特性也可以讓這些設(shè)備清楚地瀏覽SVG圖象信息,這都是目前的位圖圖象所不能做到的。
SVG是可升級(jí)矢量圖形(Scalable Vector Graphics)的簡(jiǎn)稱。
可升級(jí)(Scalable)意味著統(tǒng)一地增加或減少。對(duì)圖象來說,可升級(jí)意味著圖象尺寸并不限定固定的大小,對(duì)互連網(wǎng)(Web)來說,可升級(jí)意味著一個(gè)特殊的技術(shù),它能夠增加文件數(shù)量、用戶數(shù)量和應(yīng)用的種類。SVG作為Web上的一個(gè)技術(shù)之一,可升級(jí)含有這兩方面的意思。
SVG圖象可升級(jí)到不同的顯示的分辨率,例如:相同尺寸的SVG圖象,打印輸出使用高分辨率,而在屏幕顯示時(shí)可以使用不同的分辨率。同一個(gè)SVG圖象能夠以不同的尺寸放到同一頁面上,也可以被不同的其它頁面所使用。我們可以放大一個(gè)SVG圖象,來了解其精美的細(xì)節(jié)信息。
SVG是可升級(jí)的,原因還在于:同一段SVG內(nèi)容,既可以是獨(dú)立的圖象,也可以被引用到一個(gè)頁面,也可以嵌入到另外的SVG圖象中。因此,一個(gè)復(fù)雜的SVG圖象可以有多部分組成,也可以由多人共同完成。符號(hào)、標(biāo)記、字體能夠重復(fù)利用圖形的某些組成部分,這樣可以充分利用HTTP的緩存優(yōu)勢(shì)。
矢量圖象包含有諸如直線和曲線等幾何對(duì)象。這相對(duì)于以象素保存信息的位圖格式的圖象(如PNG、JPEG)來說有更大的靈活性。矢量格式圖象的最大好處就是,它可以和位圖圖象集成在一起,也可以把他們和矢量信息結(jié)合在一起以產(chǎn)生更加完美的圖象。SVG也不例外。
由于所有的顯示器都是基于點(diǎn)陣的,位圖圖象和矢量圖象的差別就歸結(jié)為他們是在客戶端還是在服務(wù)器端進(jìn)行圖象展現(xiàn)處理;SVG能夠控制圖象展現(xiàn)的過程,不致于出現(xiàn)粗糙或帶鋸齒的圖象。SVG還能夠提供客戶端的濾鏡效果。
大多數(shù)XML語法描繪的都是文字信息或原始數(shù)據(jù),他們不能提供圖象的能力,SVG能夠提供豐富的、結(jié)構(gòu)化的矢量和矢量與圖象混合的圖象信息。
XML是W3C的推薦標(biāo)準(zhǔn),用于結(jié)構(gòu)化的信息交換,已經(jīng)得到廣泛的普及和應(yīng)用。SVG是建立在此基礎(chǔ)上的,有很明顯的優(yōu)勢(shì),比如:廣泛的國(guó)際化基礎(chǔ),強(qiáng)大的結(jié)構(gòu)化能力,以及對(duì)象模型等。
樣式單能夠很好地控制文字的外在表現(xiàn)方式,它的靈活性、快速下載和易于維護(hù)的特性早已被人們接受,SVG把這種技術(shù)擴(kuò)展到了圖象世界中。腳本編程、DOM對(duì)象和CSS樣式單的組合常被人們稱作Dynamic HTML,廣泛應(yīng)用在動(dòng)畫制作、交互性和外在的表現(xiàn)效果中,SVG也可以借助腳本語言進(jìn)行操縱文檔對(duì)象和樣式單。
使用XML,可以很方便地建立模型。對(duì)文本格式的語法來說,模型通常是建立在段落級(jí)和短語級(jí),而不是在獨(dú)立的名詞、副詞或者是音素上。SVG是在圖形對(duì)象級(jí)建立圖象模型而不是獨(dú)立的許多點(diǎn)。
SVG提供了一個(gè)通用的path元素,可以用來創(chuàng)建各種類型的圖形對(duì)象,但同時(shí)也提供了一些基本的形狀元素如矩形和橢圓等,這些基本形狀對(duì)編寫代碼是非常方便的,也可以應(yīng)用在復(fù)雜的路徑描繪中。SVG提供對(duì)坐標(biāo)系統(tǒng)的精確控制,圖象對(duì)象的定義和變換都是在這個(gè)坐標(biāo)系統(tǒng)之中。
SVG中的符號(hào)
SVG也能夠提供一些象電子、繪畫和流程圖等使用的標(biāo)準(zhǔn)符號(hào),但目前的版本并沒有提供這些。SVG允許用戶創(chuàng)建和共享他們的符號(hào)庫(kù),設(shè)計(jì)者能夠清楚地知道他們使用的符號(hào)的外在表現(xiàn),而不必?fù)?dān)心那些不支持的符號(hào)。符號(hào)也可以以不同的尺寸和角度使用,也可以為了達(dá)到與其他的圖形對(duì)象相互組合而進(jìn)行重新定義樣式。
SVG的展現(xiàn)效果
許多Web中使用的圖象都是依靠圖形工具包來創(chuàng)建模糊、陰影、光線等效果的,要在客戶端展現(xiàn)這些效果是不可思義的。SVG可以單獨(dú)地或以組合的方式對(duì)濾鏡效果進(jìn)行描述,這些效果可以用在客戶端,當(dāng)SVG圖象展現(xiàn)的時(shí)候展現(xiàn)這些效果,而圖象仍可以以圖象的分辨率的進(jìn)行縮放和顯示。
SVG的文字
豐富的圖形效果有時(shí)候會(huì)在很大程度上依賴于所使用的特定的文字和文字間距。大多數(shù)情況下,圖象設(shè)計(jì)者為了防止圖象上的被別人替換,往往會(huì)把文字轉(zhuǎn)換成圖象,原來的文字也就變成了不可搜索和訪問的了。SVG的標(biāo)準(zhǔn)制定者在聽取了設(shè)計(jì)者們的意見后,在SVG中保留了文字元素,這樣,文字和圖象都被分別進(jìn)行展現(xiàn)。
SVG的動(dòng)畫
動(dòng)畫可以通過腳本語言操縱文檔中元素來實(shí)現(xiàn),但腳本的編輯和交換通常很麻煩。SVG和SYMM工作組經(jīng)過集思廣益,共同在SVG中定義了動(dòng)畫元素,這樣,在網(wǎng)頁圖形中常用的動(dòng)畫效果就可以在SVG中使用。