Canvas VS . SVG

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 的应用都不快)
  • 不适合游戏应用
时间: 2024-11-09 02:00:57

Canvas VS . SVG的相关文章

【HTML5】Canvas和SVG的区别

* SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的.您可以为某个元素附加 JavaScript 事件处理器. 在 SVG 中,每个被绘制的图形均被视为对象.如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形. * Canvas Canvas 通过 JavaScript 来绘制 2D 图形. Canvas 是逐像素进行渲染的. 在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注.如果

HTML 5 Canvas vs. SVG(摘抄)

摘抄自:http://www.w3school.com.cn/html5/html_5_canvas_vs_svg.asp 如果之前知道的话,理解起来就不会那么困难了,就能很快看懂代码,然后从模仿到创新.虽然技术的确需要脑力,但是积累多了 也会有不同的. Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的. SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的.您可以为某个元素附加 Jav

canvas与svg区别

HTML5新特性之五--SVG绘图   Canvas绘图 SVG绘图 绘图类型 位图 矢量图 缩放 失真 不失真 颜色细节 丰富 不够丰富 应用领域 照片.游戏 统计图.图标.地图 内容 JS绘制 每个图形都是标签 事件绑定 不方便 方便 Scalable Vector Graphiph,可缩放的矢量图,此技术在2000年就已经存在了,独立于网页的一门技术:HTML5之后,纳入了HTML5标准标签库,并进行了一定的瘦身. SVG技术的使用方法: (1)HTML5之前的使用方法: SVG标签不属于

H5 Canvas vs. SVG

HTML 5 Canvas vs. SVG HTML5 SVG HTML5 地理定位 Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的. SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的.您可以为某个元素附加 JavaScript 事件处理器. 在 SVG 中,每个被绘制的图形均被视为对象.如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形. Canvas Canvas 通

Canvas 和 SVG 的区别

SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式.SVG是W3C制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准.SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式. 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形

canvas和SVG分析比较

Canvas 和 SVG 之间的主要相似点为: 它们都是有效的图形工具,可用来快速创建在网页中显示的轻型图形:它们都使用 JavaScript 和 HTML:它们都遵守万维网联合会 (W3C) 标准. 这两种技术之间的主要区别是: Canvas 是基于像素的即时模式图形系统,最适合较小的表面或较大数量的对象,canvas不支持鼠标键盘等事件 SVG 是基于形状的保留模式图形系统,更加适合较大的表面或较小数量的对象.Canvas 和 SVG 在修改方式上还存在着不同.绘制 Canvas 对象后,不

HTML5中Canvas与SVG的画图原理比较

canvas 与 SVG都能够使你在浏览器中画图,但它们的基本原理不同.鞍山治疗白癜风多少钱www.pfk0412.com SVG SVG是一种在XML中描述二维图形的语言. SVG是基于XML的,意味着在SVG DOM内每一个元素都是可用的.你可以为每一个元素增加JS事件处理器. 在SVG中,每一个图形被记作一个对象.如果一个SVG对象的属性发生改变,浏览器可以自动重新生成图形. Canvas Canvas能够在fly上画2D图形(使用JS) Canvas能够按照像素重新生成. 在Canvas

Canvas与svg的比较

首先让我们分别了解一下这两个是什么: 什么是 Canvas? Canvas 是指定了长度和宽度的矩形画布, 可使用HTML5 JS API 来画出各种图形. 不过,canvas本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. 定义和用法 <canvas> 标签定义图形,比如图表和其他图像. <canvas> 标签只是图形容器,您必须使用脚

canvas和svg小记

一.关于canvas <canvas> 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形 例如,它可以用于绘制图形,创建动画. <canvas> 最早由Apple引入WebKit 我们可以使用<canvas>标签来定义一个canvas元素,canvas标签的两个属性<canvas> 看起来和 <img> 元素很相像,唯一的不同就是它并没有 src 和 alt 属性. 实际上,<canvas> 标签只有两