溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

canvas和svg的區(qū)別是什么

發(fā)布時(shí)間:2020-09-10 11:34:43 來源:億速云 閱讀:201 作者:小新 欄目:web開發(fā)

小編給大家分享一下canvas和svg的區(qū)別是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在說canvas與svg的區(qū)別之前,我們先來看一看canvas和svg是什么?

svg是什么?

SVG 指可伸縮矢量圖形 (Scalable Vector Graphics)。
SVG 用來定義用于網(wǎng)絡(luò)的基于矢量的圖形。
SVG 使用 XML 格式定義圖形。
SVG 圖像在放大或改變尺寸的情況下其圖形質(zhì)量不會有所損失。
SVG 是萬維網(wǎng)聯(lián)盟的標(biāo)準(zhǔn)。
SVG 與諸如 DOM 和 XSL 之類的 W3C 標(biāo)準(zhǔn)是一個(gè)整體。

canvas是什么?

HTML5 的 canvas 元素使用 JavaScript 在網(wǎng)頁上繪制圖像。畫布是一個(gè)矩形區(qū)域,您可以控制其每一像素。canvas 擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。

知道了svg和canvas是什么之后,我們就來比較一下canvas和svg。

canvas和svg的區(qū)別比較:

首先我們從時(shí)間上看canvas與svg的區(qū)別:

canvas是html5提供的新元素<canvas>,而svg存在的歷史要比canvas久遠(yuǎn),已經(jīng)有十幾年了。

svg并不是html5專有的標(biāo)簽,最初svg是用xml技術(shù)(超文本擴(kuò)展語言,可以自定義標(biāo)簽或?qū)傩裕┟枋龆S圖形的語言。

其次我們從功能上看canvas與svg的區(qū)別:

SVG 是一種使用 XML 描述 2D 圖形的語言。
SVG 基于 XML,這意味著 SVG DOM 中的每個(gè)元素都是可用的。您可以為某個(gè)元素附加 JavaScript 事件處理器。
在 SVG 中,每個(gè)被繪制的圖形均被視為對象。如果 SVG 對象的屬性發(fā)生變化,那么瀏覽器能夠自動重現(xiàn)圖形。

Canvas 通過 JavaScript 來繪制 2D 圖形。
Canvas 是逐像素進(jìn)行渲染的。
在 canvas 中,一旦圖形被繪制完成,它就不會繼續(xù)得到瀏覽器的關(guān)注。如果其位置發(fā)生變化,那么整個(gè)場景也需要重新繪制,包括任何或許已被圖形覆蓋的對象。

最后我們來看canvas與svg技術(shù)應(yīng)用上的比較:

canvas不依賴分辨率。
canvas支持事件處理器。
canvas最適合帶有大型渲染區(qū)域的應(yīng)用程序(比如谷歌地圖)。
canvas復(fù)雜度高會減慢渲染速度(任何過度使用 DOM 的應(yīng)用都不快)。
canvas不適合游戲應(yīng)用。

svg依賴分辨率。
svg不支持事件處理器。
svg弱的文本渲染能力。
svg能夠以 .png 或 .jpg 格式保存結(jié)果圖像。
svg最適合圖像密集型的游戲,其中的許多對象會被頻繁重繪。

以上是canvas和svg的區(qū)別是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI