Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的。
来源:互联网 发布:flash for chrome mac 编辑:程序博客网 时间:2024/04/28 03:50
SVG
SVG 是一种使用 XML 描述 2D 图形的语言。
SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。
在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。
Canvas
Canvas 通过 JavaScript 来绘制 2D 图形。
Canvas 是逐像素进行渲染的。
在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。
Canvas 与 SVG 的比较
下表列出了 canvas 与 SVG 之间的一些不同之处。
Canvas
- 依赖分辨率
- 不支持事件处理器
- 弱的文本渲染能力
- 能够以 .png 或 .jpg 格式保存结果图像
- 最适合图像密集型的游戏,其中的许多对象会被频繁重绘
SVG
- 不依赖分辨率
- 支持事件处理器
- 最适合带有大型渲染区域的应用程序(比如谷歌地图)
- 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
- 不适合游戏应用
0 0
- Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的。
- svg文件在不同浏览器中显示有差异svg
- 在不同的浏览器中创建XMLHttpRequest对象
- 浅谈C++中指针和引用的区别 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。 1.指针和引用的定义和性质区别: (1)指针:指针是一
- canvas在不同浏览器中高度限制问题
- 如何在Flash as3 中使用SVG格式的图形
- 在数组中查找两个数,使得它们的和正好是输入的那个数字
- 在数组中查找两个数,使得它们的和正好是输入的那个数字。
- .Net Error 当前不会命中断点。在 XXX.dll 中找到了 XXXX 的副本,但是当前源代码与 XXX.dll 中内置版本不同。若要允许...
- google 也在推出自己的浏览器,但是为什么都在关心 private browsing mode.
- 类成员是按照它们在类里被声明的顺序进行初始化的,和它们在成员初始化列表中列出的顺序没一点关系
- [实验]在同一个 canvas 元素中绘制不同颜色的图形
- 在SVG中旋转图形,需要设置各个图形的旋转中心点
- 在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢?
- 关于require和package.loadlib的介绍和它们的关系,以及它们在加载C模块时不同表现
- 如何在HTML页面中创建兼容不同浏览器的XMLHttpRequest对象
- 如何在 SVG 和 Canvas 之间进行选择
- Canvas 在Android手机的某些浏览器中绘制两次
- 基于window系统打造一套linux开发环境
- Java远程调试(Remote Debug)方法——以Eclipse为例
- hash---出现过的数字
- zabbix监控tomcat
- 如何在Mac OS中安装 wget
- Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的。
- MYSQL 索引 优化以及延伸
- swift学习之数据转换
- 关于Qt中QPainter和(painEvent,mouseEvent)的结合使用
- 跳坑指南-linux端sshd与windows端ssh的配置
- Java声明静态map/list
- 第十章 内部类 内部类的作用、闭包、内部类继承、覆盖重写内部类、局部内部类、内部类标识符
- 面向对象是什么鬼(OOP)
- Longest Common Substring