SVG

SVG 是一种使用 XML 描述 2D 图形的语言。

SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

SVG 的优势

与其他图像格式相比(比如 JPEG 和 GIF),使用 SVG 的优势在于:

  • SVG 图像可通过文本编辑器来创建和修改

  • SVG 图像可被搜索、索引、脚本化或压缩

  • SVG 是可伸缩的

  • SVG 图像可在任何的分辨率下被高质量地打印

  • SVG 可在图像质量不下降的情况下被放大

Canvas

Canvas 通过 JavaScript 来绘制 2D 图形。

Canvas 是逐像素进行渲染的。

在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

JPEG

JPEG是一种广泛适用的压缩图像标准方式。

优点摄影作品或写实作品支持高级压缩。

利用可变的压缩比可以控制文件大小。

支持交错(对于渐近式JPEG文件)。

广泛支持Internet标准。

缺点:有损耗压缩会使原始图片数据质量下降。

当您编辑和重新保存JPEG文件时,JPEG会混合原始图片数据的质量下降。这种下降是累积性的。

JPEG不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。

GIF分为静态GIF和动画GIF两种,扩展名为.gif,是一种压缩位图格式,支持透明背景图像,适用于多种操作系统,“体型”很小,网上很多小动画都是GIF格式。其实GIF是将多幅图像保存为一个图像文件,从而形成动画,最常见的就是通过一帧帧的动画串联起来的搞笑gif图,所以归根到底GIF仍然是图片文件格式。

但GIF只能显示256色。和jpg格式一样,这是一种在网络上非常流行的图形文件格式。

GIF主要分为两个版本,即GIF 89a和GIF 87a

GIF 87a:是在1987年制定的版本

GIF 89a:是1989年制定的版本。在这个版本中,为GIF文档扩充了图形控制区块、备注、说明、应用程序编程接口等四个区块,并提供了对透明色和多帧动画的支持。

Png

便携式网络图形(Portable NetworkGraphics)是一种无损压缩的位图图形格式。其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG的名称来源于“可移植网络图形格式(Portable Network Graphic Format,PNG)”,也有一个非官方解释“PNG's NotGIF”。PNG使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序、网页或S60程序中,原因是它压缩比高,生成文件体积小。

特征

体积小网络通讯中因受带宽制约,在保证图片清晰、逼真的前提下,网页中不可能大范围的使用文件较大的bmp格式文件。

无损压缩 PNG文件采用LZ77算法的派生算法进行压缩,其结果是获得高的压缩比,不损失数据。它利用特殊的编码方法标记重复出现的数据,因而对图像的颜色没有影响,也不可能产生颜色的损失,这样就可以重复保存而不降低图像质量。

索引彩色模式 PNG-8格式与GIF图像类似,同样采用8位调色板将RGB彩×××像转换为索引彩×××像。图像中保存的不再是各个像素的彩色信息,而是从图像中挑选出来的具有代表性的颜色编号,每一编号对应一种颜色,图像的数据量也因此减少,这对彩×××像的传播非常有利。

更优化的网络传输显示 PNG图像在浏览器上采用流式浏览,即使经过交错处理的图像会在完全下载之前提供浏览者一个基本的图像内容,然后再逐渐清晰起来。它允许连续读出和写入图像数据,这个特性很适合于在通信过程中显示和生成图像。

支持透明效果 PNG可以为原图像定义256个透明层次,使得彩×××像的边缘能与任何背景平滑地融合,从而彻底地消除锯齿边缘。这种功能是GIF和JPEG没有的。

PNG同时还支持真彩和灰度级图像的Alpha通道透明度。[4]

最高支持24位真彩×××像以及8位灰度图像。

支持Alpha通道的透明/半透明特性。

支持图像亮度的Gamma校准信息。

支持存储附加文本信息,以保留图像名称、作者、版权、创作时间、注释等信息。

渐近显示和流式读写,适合在网络传输中快速显示预览效果后再展示全貌。

使用CRC防止文件出错。

最新的PNG标准允许在一个文件内存储多幅图像。

Canvas 与 SVG 的比较

Canvas

  • 依赖分辨率

  • 不支持事件处理器

  • 弱的文本渲染能力

  • 能够以 .png 或 .jpg 格式保存结果图像

  • 最适合图像密集型的游戏,其中的许多对象会被频繁重绘

SVG

  • 不依赖分辨率

  • 支持事件处理器

  • 最适合带有大型渲染区域的应用程序(比如谷歌地图)

  • 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)

  • 不适合游戏应用

转载于:https://blog.51cto.com/12660415/1962414

Canvas VS . SVG相关推荐

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

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

  2. 080_html5 Canvas和SVG

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

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

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

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

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

  5. 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 ...

  6. canvas webGL SVG 比较

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

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

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

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

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

  9. HTML5的图像系统Canvas与SVG

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

最新文章

  1. vsftpd安装配置
  2. 【position也可以很复杂】当弹出层遇上了鼠标定位(上)
  3. oracle 11g 下载地址
  4. c语言5-34答案,C语言答案第5章.doc
  5. CentOS第一次安装MySQL的完整步骤
  6. python期末考试及答案广东_PYTHON语言应用答案试题题目及答案,期末考试题库,章节测验答案...
  7. android最低版本+黑域,免root版黑域
  8. Vue 接入高德地图
  9. js数组按中文拼音排序_前端面试题二(JS进阶篇)
  10. web前端期末大作业 基于HTML+CSS家乡主题毕业设计源码 (1)
  11. Hexo 关闭文章评论
  12. 去哪找计算机相关论文,计算机行业论文在哪发表有影响力
  13. 深度学习算法优化系列十 | 二值神经网络(Binary Neural Network,BNN)
  14. MySQL查询之内存临时表
  15. C++学习-Day-19
  16. 如何选购便宜的SSL证书
  17. 计算机的输入输出设备
  18. 服务器绑定自己的域名-腾讯云
  19. 人机大战,历史的见证
  20. 康耐视visionpro工具-数据分析CogDataAnalysisTool

热门文章

  1. windows下的cmd命令(全面)
  2. 进击的python【第一集】
  3. VS恢复默认设置的2种方法
  4. jdk\willy\集群安装
  5. CyberArticle(网文快捕)上传文件提示‘许可不足’
  6. jquery 中attr和prop的区别
  7. php查找函数所在文件
  8. 由一次奇怪的编译出错想起的
  9. kettle内存溢出
  10. 【AudioVideo】视频媒体会话回调(11)