首先简单说一下Canvas

canvas是H5中新增的标签,官方解释说canvas是一块画布,可以在网页中绘制图像,话不多说,来个例子

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style> /*在使用canvas时候,不可用css来定义canvas的宽度因为当画布缩放的同时,内部的图像也会随之缩放,这是就会出现图像失真的情况*/canvas{background-color: #aaa;} </style>
</head>
<body><canvas width="500" height="500">浏览器不支持canvas</canvas> //这就是canvas标签,当浏览器不支持canvas标签的时候就会在浏览器展示出浏览器不支持canvas这段话<script> var canvas = document.querySelector("canvas")//绘图环境var ctx = canvas.getContext("2d")function img(){//ctx.drawImage(图像对象,坐标,宽高)var imgObj = new Image() //new一个图像对象imgObj.src="./img.jpg"//在这里要注意,一点要在imgObj.onload内部再使用ctx.drawImage,否则会画图失败imgObj.onload = function (){ctx.drawImage(imgObj,100,100,300,300)}// ctx.drawImage(imgObj,100,100,300,300)}img() </script>
</body>
</html>

再了解一下svg

svg即可缩放矢量图形,什么是矢量图形呢,也就是放大或者缩小不会失真的图形。svg绘图时,每个图形都是以DOM节点的形式插入到页面中的,我们可以通过js来直接操作这些图形。

区别

  1. Canvas 主要是用笔刷来绘制 2D 图形的。
  2. SVG 主要是用标签来绘制不规则矢量图的。
  3. 相同点:都是主要用来画 2D 图形的。
  4. 不同点:Canvas 画的是位图,SVG 画的是矢量图。
  5. 不同点:SVG 节点过多时渲染慢,Canvas 性能更好一点,但写起来更复杂。
  6. 不同点:SVG 支持分层和事件,Canvas 不支持,但是可以用库实现。

Canvas 和 SVG 的区别是什么?相关推荐

  1. Canvas VS . SVG

    SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的.您可以为某个元素附加 JavaScript 事件处理器. 在 SV ...

  2. HTML5 Canvas、内联 SVG、Canvas vs. SVG

    canvas 元素用于在网页上绘制图形. 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canv ...

  3. 080_html5 Canvas和SVG

    1. Canvas和SVG都允许您在浏览器中创建图形, 但是它们在根本上是不同的. 2. SVG 2.1. SVG是一种使用XML描述2D图形的语言. 2.2. SVG基于XML, 这意味着SVG D ...

  4. H5中canvas和svg绘图方式介绍

    在HTML5中包括了两种绘图方式,canvas和svg(矢量呈现),而与canvas不同的是,svg是一种XML标记语言,它既可以单独保存以".svg"为后缀的文件在浏览器中打开显 ...

  5. Canvas or SVG?一张好图,两手准备,就在 ECharts 4.0

    Canvas 和 SVG 是两大基于浏览器的渲染方案,在选择图表库的时候,用户有时也会在这两者之间纠结.但是纠结的时候,你是否真的明白这两者在哪些方面有优劣? ECharts 4.0 推出 Canva ...

  6. HTML5 Canvas vs. SVG vs. div

    本文翻译自:HTML5 Canvas vs. SVG vs. div What is the best approach for creating elements on the fly and be ...

  7. canvas webGL SVG 比较

    https://blog.csdn.net/Thea12138/article/details/79723380 对每个类型的封装库:https://blog.csdn.net/u010513603/ ...

  8. html5 svg特性,HTML5新特性——HTML 5 Canvas vs. SVG

    Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的. SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个 ...

  9. HTML画布与SVG(Canvas vs. SVG)

    目录 画布(Canvas) 什么是 Canvas? 创建 Canvas 元素 通过 JavaScript 来绘制 理解坐标 更多 Canvas 实例 实例 - 线条 实例 - 圆形 实例 - 渐变 实 ...

  10. HTML5的图像系统Canvas与SVG

    在HTML5之前,没有标准的提供可供Javascript脚本调用的图像系统,以前的做法通常是通过Div来画点.线.矩形这种非常"笨"的办法来变相的绘图,虽然很"笨&quo ...

最新文章

  1. C++关键字volatile
  2. 软件工程阅读作业感想
  3. 技术领导力实战笔记一
  4. shell脚本 回顾 小练习
  5. string replaceAll
  6. Mysql数据库设计规范之三数据库SQL开发规范
  7. linux 连接 android,linux下android连接真机测试
  8. androidentity什么用_Android multipartentity的用法
  9. 如何做职业规划并进行求职准备(持续更新)
  10. DNS域名解析常用命令
  11. 原来小米手机电源键除了开关机,还隐藏这3大用法,真是厉害了
  12. Pandas数据结构
  13. CSDN怎么加粗字体
  14. 什么是SEM?SEM是否包括SEO?
  15. 淘宝拍立淘以图搜图接口:使用方法和指南
  16. 3、Spark 和 D3.js 分析航班大数据
  17. 划水小老虎的mysql学习路线
  18. 【ROS-Navigation】—— DWA路径规划算法解析
  19. 逐梦人工智能,普通人也能用百度AI实现梦想
  20. ​2万字系统总结,带你实现Linux命令自由

热门文章

  1. 引领新未来SOA服务框架,未来发展的方向
  2. NC11 【模板】01背包
  3. 根据报告数据,2021 年 Q1,全球小说 App 推广榜 Top20 里面,有 11 个 App 来自中国厂商。最新版本已经上线
  4. redis 学习曲线及记录笔记
  5. Bugku:杂项 啊哒
  6. 又是一年数博会,你了解多少呢?
  7. android 调取数字键盘,Android自定义键盘的实现(数字键盘和字母键盘)
  8. 读《弗洛伊德:作家与白日梦》
  9. android simplelistitem1,6.3.1 在列表中显示简单数据(2)
  10. Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true' to 以及Spring事务失效的原因和解决方案