前端绘图方式Canvas和SVG的区别

2023-10-27

Canvas和SVG是html5中支持2种可视化技术,都是可以在画布上绘制图形和放入图片。下面来介绍和分析一下他们。

一.Canvas 和 SVG 简介

1.什么是Canvas?

Canvas 是H5新出来的标签<canvas></canvas>

Canvas画布,利用JavaScript在网页绘制图像

在标签中给上宽高:<canvas width="800" height="800"></canvas>   不用加单位

如果在css中给宽高 会对图像造成拉伸 (默认宽高300px*150px)

通过过去绘制工具  .getContext("2d") 来在画布中绘制图形

2.什么是SVG?

SVG 可缩放矢量图形(Scalable Vector Graphics),基于可扩展标记语言XML  出来的时间比较老

SVG 用来定义用于网格的基于矢量的图形

二.Canvas 和 SVG 区别

 

1.绘制的图片格式不同

Canvas 的工具getContext 绘制出来的图形或传入的图片都依赖分辨率,能够以 .png 和 .jpg格式保存存储图像,可以说是位图

SVG 可以在H5中直接绘制,但绘制的是矢量图

由于位图依赖分辨率,矢量图不依赖分辨率,所以Canvas和SVG的图片格式的不同实际上是他们绘制出来的图片的格式不同造成的。

 

2.Canvas不支持事件处理器,SVG支持事件处理器

Can

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端绘图方式Canvas和SVG的区别 的相关文章

随机推荐

  • 汇编视角分析C++虚函数实现原理

    1 概述 虚函数是c 语言非常重要的机制 日常的c 编程工作中经常使用虚函数 通过汇编视角来探究虚函数的实现原理 有助于深刻理解虚函数的内部机制 尤其要说明的是 c 语法规范并没有规定虚函数的具体实现方案 不同的编译器实现方式可以不同 本文
  • 高德德图进去不显示地图或者刷新页面地图丢失解决方法

    在mian js中写这个就可以了 防止刷新地图不显示 清除地图换成 const amapKeys Object keys localStorage filter key gt key match AMap amapKeys forEach
  • opentsdb遇到的坑和优化建议

    opentsdb是基于hbase的时间序列数据库 数据库能力依赖于hbase集群 是一个比较重型的监控解决方案 网上介绍比较多 但大多只是粗浅的介绍 在实际使用了一段时间后也遇到了一些坑和一些使用方法 跟大家分享下 1 opentsdb能做
  • 2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV

    如果有嵌入式企业需要招聘校园大使 湖南区域的日常实习 任何区域的暑假Linux驱动实习岗位 可C站直接私聊 或者邮件 zhangyixu02 gmail com 此消息至2025年1月1日前均有效 前言 1 已经有不少同学根据我上一篇博客完
  • 【Git】(二)分支

    1 创建分支 已存在主分支master 现在需要创建v1 0的版本 一般直接在web页面操作 v1 0分支 基线master 称为项目分支 假如 v1 0项目存在两个项目成员sunriver2000和snow 一般还会再针对个人创建个人分支
  • J2EE&通用分页02

    目录 一 重构 提取公用方法 1 为了进行公共方法的抽取 需要找出上面实习中的可通用部分 和差异化部分 2 公用方法封装思路 3 具体实现 二 分页标签 2 1 准备一个Servlet 3 2 结果展示页面 三 过滤器解决中文乱码问题 四
  • 董事长、总裁和CEO--浅谈公司领导者的称谓与实质

    自从信息产业兴起以来 尤其是网络股泡沫产生以来 CEO 在中国骤然成为一个流行词汇 总经理和总裁们纷纷改称CEO 这个缩写词比它的中译版 首席执行官 更简洁 在中国人心目中更有神圣感 于是便出现了今天CEO满天飞的局面 刚刚从大学毕业的年轻
  • MySQL视图

    一 视图 介绍及基本语法 视图 View 是一种虚拟存在的表 视图中的数据并不在数据库中实际存在 行和列数据来自定义视图的查询中使用的表 并且是在使用视图时动态生成的 通俗的讲 视图只保存了查询的SQL逻辑 不保存查询结果 所以我们在创建视
  • VUE移动端使用overflow-auto滚动条坑

    解决 滚动条 滑动 一次就一直出现在底部问题 在关闭模态框之前 操作原生dom var box document querySelector div box scrollTop 0 设置 滚动条的 位置 为 0 这样 每次重新打开另一条数据
  • 新版husky8.0配合commitlint,规范我们的git的提交记录

    文章目录 安装 配置 第一步 初始化husky 第二步 添加git提交的hook 第三步 在项目根目录新建配置文件 commitlint config js 验证一下 附1 git commit完整的规范 附2 commitlint con
  • C+复习Parameter Passing

    double average double a double b call by value void swap double a double b call by reference in C 11 this is more techni
  • 在Ubuntu环境下用gcc命令运行c程序以及Makefile编译

    在Ubuntu环境下用gcc命令运行c程序以及Makefile编译 用gcc命令编译c语言 用VC 6 0编译C语言 用Makefile编译C语言 用gcc命令编译c语言 主程序main1 c include
  • C51 数码管的动态显示 dynamic display method of digital tube

    代码 include
  • Java代码实现使用while循环接受键盘的输入,如果输入的exit就退出,否则提示用户继续输入

    import java util Scanner 需求 编写代码按照要求实现以下的功能 使用while循环接受键盘的输入 如果输入的exit就退出 否则提示用户继续输入 要点提取 用while true 控制循环输入 用break跳出循环
  • html 基本标签

    1标题标签 h1 h6 h1 这是一段文字 h1 2 段落标签 p p 自动换行 p 这是一段文字 p 3 换行标签和水平线标签 br hr 4 图像标签 img src 图片路径 用于定义html页面的图像 img src img img
  • spss数据预处理步骤_数据处理之剔除无效问卷

    我们都知道在数据分析前 首先需要对数据进行预处理 检查数据中是否含有存在无效样本 异常值等 如果同一样本中存在大量漏填数据或相似答案过多的情况这样的样本都应该算作无效样本来处理 无效样本的常见使用场景 问卷研究中乱填问卷的样本 数据库下载的
  • 动态负荷对电力系统摆幅曲线的影响研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 摆动曲线仿真是评估扰动后电力系统稳定性的重
  • Selenium成长之路-19alert/prompt/confirm弹框处理

    webdriver 中处理 JavaScript 所生成的 alert confirm 以及 prompt 是很简单的 具体思路是使用 switch to alert 方法定位到 alert confirm prompt 然后使用 text
  • 哪些行业需要连接云专线?

    在诸多行业之中 有一些行业对数据安全性要求高 业务需要实时性 业务需求复杂 往往需要建立起私密 高速 安全的传输通道 云专线是他们经常采用的方案 具体来讲 都有哪些行业需要连接云专线呢 请见下方 1 金融行业 金融行业需要进行大量的数据传输
  • 前端绘图方式Canvas和SVG的区别

    Canvas和SVG是html5中支持2种可视化技术 都是可以在画布上绘制图形和放入图片 下面来介绍和分析一下他们 一 Canvas 和 SVG 简介 1 什么是Canvas Canvas 是H5新出来的标签