html - SVG 和 HTML5 Canvas 有什么区别?

标签 html canvas svg

SVG 和 HTML5 Canvas 之间有什么区别?他们似乎都对我做同样的事情。基本上,它们都是使用坐标点绘制矢量图。

我错过了什么? SVG 和 HTML5 Canvas 之间的主要区别是什么?为什么我应该选择一个而不是另一个?

最佳答案

SVG 就像一个“绘图”程序。绘图指定为每个形状的绘图说明,并且可以更改任何形状的任何部分。绘图是面向形状的。

Canvas 就像一个“绘画”程序。一旦像素到达屏幕,这就是您的绘图。您不能更改形状,除非用其他像素覆盖它们。绘画是面向像素的。

能够更改绘图对于某些程序来说非常重要;例如起草应用程序、图表工具等。因此 SVG 在这方面具有优势。

能够控制单个像素对于某些艺术程序很重要。

使用 Canvas 比 SVG 更容易通过鼠标拖动为用户操作获得出色的动画性能。

计算机屏幕上的单个像素通常会消耗 4 个字节的信息,而现在的计算机屏幕需要几兆字节。因此,如果您想让用户编辑图像然后再次上传,Canvas 可能会很不方便。

相比之下,使用 SVG 绘制一些覆盖整个屏幕的形状占用的字节数很少,下载速度很快,并且可以轻松地再次上传,并且在这个方向上的优势与在另一个方向上的优势相同。所以 SVG 可以比 Canvas 更快。

Google 使用 SVG 实现了 Google map 。这为网络应用程序带来了活泼的性能和流畅的滚动。

关于html - SVG 和 HTML5 Canvas 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996374/

相关文章:

javascript - 在 Google map 上制作漂亮的标签

html - Flexbox 链接颜色不遵循家长的规则

javascript - html li 动画

flash - 在 HTML 5 Canvas Animate CC 文档中包含代码文件

android - 将 Canvas 内容复制到另一个 Canvas ,类似于 iphone 的 amaziograph 应用程序

JavaScript 在 for 循环中创建对象

css - svg 填充在 Firefox 中不起作用

css - 跟随 svg 运动路径时的偏移量

css - 在 safari 和移动浏览器中的图像上使用 <feGaussianBlur/> 的奇怪人工制品

javascript - 如何在 React JSX 中添加空格