canvas與svg都是可以在瀏覽器上創建圖形,因此,在html5中感覺canvas和svg很相似,但是實際上canvas與svg有著根本的區別。下面php中文網透過比較canvas和svg之間的差異來為大家總結了關於canvas與svg的差異。一起來看一看吧。
在說canvas與svg的差別之前,我們先來看看canvas和svg是什麼?
svg是什麼?
SVG 指可伸縮向量圖 (Scalable Vector Graphics)。
SVG 用來定義用於網路的基於向量的圖形。
SVG 使用 XML 格式定義圖形。
SVG 影像在放大或改變尺寸的情況下其圖形品質不會有所損失。
SVG 是萬維網聯盟的標準。
SVG 與諸如 DOM 和 XSL 之類的 W3C 標準是一個整體。
canvas是什麼?
HTML5 的 canvas 元素使用 JavaScript 在網頁上繪製圖片。畫布是一個矩形區域,您可以控制其每個像素。 canvas 擁有多種繪製路徑、矩形、圓形、字元以及添加圖像的方法。
知道svg和canvas是什麼之後,我們就來比較一下canvas和svg了。
canvas與svg的差別比較:
#首先我們從時間來看canvas與svg的差別:
canvas是html5提供的新元素
svg並不是html5專有的標籤,最初svg是用xml技術(超文本擴充語言,可以自訂標籤或屬性)描述二維圖形的語言。
其次我們從功能來看canvas與svg的差別:
SVG 是一種使用 XML 來描述 2D 圖形的語言。
SVG 是基於 XML,這意味著 SVG DOM 中的每個元素都是可用的。您可以為某個元素附加 JavaScript 事件處理器。
在 SVG 中,每個被繪製的圖形被視為物件。如果 SVG 物件的屬性發生變化,那麼瀏覽器能夠自動重現圖形。
Canvas 透過 JavaScript 來繪製 2D 圖形。
Canvas 是逐像素進行渲染的。
在 canvas 中,一旦圖形被繪製完成,它就不會繼續得到瀏覽器的關注。如果其位置發生變化,那麼整個場景也需要重新繪製,包括任何或許已被圖形覆蓋的物件。
最後我們來看canvas與svg技術應用上的比較:
canvas不依賴解析度。
canvas支援事件處理器。
canvas最適合具有大型渲染區域的應用程式(例如Google地圖)。
canvas複雜度高會減慢渲染速度(任何過度使用 DOM 的應用都不快)。
canvas不適合遊戲應用程式。
svg依賴解析度。
svg不支援事件處理器。
svg弱的文字渲染能力。
svg能夠以 .png 或 .jpg 格式儲存結果圖片。
svg最適合圖像密集的遊戲,其中的許多物件會被頻繁重繪。
這篇文章到這裡就結束了,對於canvas和svg的更多知識內容可以參考HTML5開發手冊。
以上是canvas與svg的差別有什麼? canvas和svg的差異比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!