html5中的繪圖方法:1、利用canvas畫布,它基于像素,提供2D繪制函數(shù),依賴于HTML,通過腳本繪制圖案;2、利用SVG矢量圖,它提供一系列圖形元素,適合靜態(tài)圖片展示,高保證文檔查看和打印的應用場景。
本教程操作環(huán)境:windows7系統(tǒng)、HTML5版、Dell G3電腦。
html5中的繪圖方法有兩種:Canvas和SVG。
Canvas 和 SVG 都是 HTML5 中推薦的也是主要的2D圖形繪制技術
什么是 Canvas
<canvas>
是H5新增的組件,就像一塊幕布,可以使用腳本(通常為Javascript
)在其中繪制圖形的HTML
元素,他可以用來制作各種圖、表,或者一些動畫。- Canvas 技術比較新,注重柵格圖像處理。
什么是SVG?
- SVG是一套獨立的矢量圖形語言,成為W3C標準已經(jīng)有十幾年,
- 基于可擴展標記語言XML 出來的
區(qū)別:
-
Canvas 基于像素,提供 2D 繪制函數(shù),是一種HTML元素類型,依賴于HTML,只能通過腳本繪制圖案;
-
SVG為矢量圖,提供一系列圖形元素
(Rect,Path,Circle,Line...)
;還有完整的動畫,時間機制,本身就能獨立使用,也可以嵌入到HTML中。 -
Canvas是逐像素進行渲染的,一旦圖形繪制完成,就不會繼續(xù)被瀏覽器關注。
-
SVG是通過DOM操作來顯示的。
功能對比:
Canvas 提供功能更原始,動態(tài)渲染和大數(shù)據(jù)量繪制
-
依賴分辨率
-
不支持事件處理器
-
Canvas是逐像素進行渲染的,一旦圖形繪制完成,就不會繼續(xù)被瀏覽器關注,所以文本渲染能力弱
-
能夠以.png 或 .jpg 格式保存結果圖像
-
Canvas 最適合有許多對象要被頻繁重繪的圖形密集型游戲
-
適合小面積,大數(shù)量的場景
SVG功能更完善,適合靜態(tài)圖片展示,高保證文檔查看和打印的應用場景;
-
不依賴分辨率
-
支持事件處理器
-
SVG是通過DOM操作來顯示的,最適合帶有大型渲染區(qū)域的應用程序(比如谷歌地圖)
-
復雜度高會減慢渲染速度(任何過度使用 DOM 的應用都不快)
-
SVG由于DOM操作,在復雜度高的游戲應用中會減慢渲染速度,不適合游戲應用
-
適合大面積,小數(shù)量的場景。強烈建議在移動平臺優(yōu)先選擇 SVG 進行渲染。