SVG 与 HTML5 的 canvas 各有啥优点,哪个更有前途

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVG 与 HTML5 的 canvas 各有啥优点,哪个更有前途相关的知识,希望对你有一定的参考价值。

canvas其实本质控制的是渲染,不管里面如何复杂,每一次改变画布都需要重新渲染,而svg不需要,所以两者就很能凸显各自用途,比如canvas的渲染特效不需要复杂的层叠运算,只需要输出最终的渲染结果,所以效率好,而svg只是用于描述二维矢量图形的一种图形格式,保真度较高 ,所以谷歌地图百度地图都会用到,canvas控制的是像素块,svg是矢量信息。两者概念你可以类比位图和矢量图的概念,位图存的是像素块,矢量图存的是路径,canvas是输出渲染像素块,svg是输出矢量路径,其它区别都是围绕这个展开的! 参考技术A Canvas是使用javascript程序绘图(动态生成),SVG是使用XML文档描述来绘图。
从这点来看:SVG更适合用来做动态交互,而且SVG绘图很容易编辑,只需要增加或移除相应的元素就可以了。
同时SVG是基于矢量的,所有它能够很好的处理图形大小的改变。Canvas是基于位图的图像,它不能够改变大小,只能缩放显示;所以说Canvas更适合用来实现类似于Flash能做的事情(当然现在Canvas与Flash相比还有一些不够完善的地方)。
关于最后一点二者谁更有前途:从上面我们可以知道二者是有不同用途的,作为一个开发者,你应该做的是理解应用程序的具体需求并选择正确的技术来实现它。

以上是关于SVG 与 HTML5 的 canvas 各有啥优点,哪个更有前途的主要内容,如果未能解决你的问题,请参考以下文章

SVG 与 HTML5 的 canvas 各有啥优点,哪个更有前途

SVG 与 HTML5 的 canvas 各有啥优点,哪个更有前途

SVG 和 HTML5 Canvas 有啥区别?

HTML中SVG和CANVAS的区别

HTML5——Canvas 与 SVG 区别

CANVAS画布与SVG的区别