HTML5技术

canvas初探1 - 南极看雪的熊

字号+ 作者:H5之家 来源:博客园 2016-05-18 12:05 我要评论( )

刚申请的博客,当然这也是第一篇。对于 canvas 也是刚开始着手进行学习,有哪些不对的地方,还望看到本篇博文的朋友指正。 1. canvas 的历史 首先,它是 HTML5 的一个标签。 它是为了客户端矢量图形而设计的,它没有自己的行为,它将一个绘图 API 展现给 Jav

刚申请的博客,当然这也是第一篇。对于canvas也是刚开始着手进行学习,有哪些不对的地方,还望看到本篇博文的朋友指正。

1.canvas的历史

首先,它是HTML5的一个标签。

它是为了客户端矢量图形而设计的,它没有自己的行为,它将一个绘图API展现给Javascript,使脚本能够把想绘制的东西都绘制到一块画布上。

其次,它是在AppleSafari 1.3版本的浏览器中被引用。随后Firefox 1.5和Opera 9也支持了<canvas>标签。之后IE也可以使用<canvas>标签,但是要在IEVML支持的基础上使用开源的Javascript代码来构建兼容性的画布。参考

最后,由浏览器厂商非正式协会的推动,使<canvas>标签成为了HTML5草案中一个正式的标签。

2.canvas元素

2.1 canvas元素的方法和属性

canvas的属性

属性 描述 类型 取值范围 默认值

width    canvas元素绘图表面的宽度。在默认状态下,浏览器会将canvas元素的大小设定成与绘图表面大小一致。然而,如果在CSS中覆盖了元素大小,那么浏览器则会将绘图表面进行缩放,使之符合元素尺寸。 非负整数     在有效范围内的任意非负整数。数值开头可以添加“+”或空格,但是按照规则,不能给数值加px后缀 300

height canvas元素绘图表面的高度。具体参照对width属性的描述 非负整数 在有效范围内的任意非负整数。数值开头可以添加“+”或空格,但是按照规则,不能给数值加px后缀 300

canvas的方法

属性 描述

getContext() 返回与该canvas元素相关的绘图环境

toDataURL(type,quality) 返回一个数据地址,你可以将其设置为img元素的src属性值。第一个参数指定了图像的类型,例如image/jpeg或image/png。第一参数默认image/png。第二参数必须是0~1.0之间的double值,它表示JPEG图像显示质量

toBlob(callback,type,args…) 创建一个用于此canvas元素图像文件的Blob。第一个参数是一个回调函数,浏览器会以一个指向blob的引用为参数,去调用该回调函数。第二个参数以”image/png”这样的形式指定图像类型。最后一个参数介于是0~1.0之间值,表示JPEG图像的质量。将来也会加入其他一些用于精确调控图像属性的参数

讨论:有关canvas元素大小与绘图表面的大小

通过一个简单的例子说明下,如下图所示,是利用canvas达到的效果。

12

 

var canvas = document.getElementById("canvas"); context=canvas.getContext("2d"); context.font = "38pt Arial"; context.fillStyle = "cornflowerblue"; context.strokeStyle = "blue"; context.fillText("Hello Canvas",canvas.width/2 - 150,canvas.height/2 + 15); context.strokeText("Hello Canvas",canvas.width/2 -150,canvas.height/2 + 15);

Example1-1

 

Example1-1 body{ background #canvas{ margin padding background borderCanvas not supported

HTML代码 

下面是通过CSS来设定canvas的大小,效果图如下。

2

 

Example1-1 body{ background #canvas{ margin padding background border width heightCanvas not supported

HTML代码

 可以看出,元素的大小有明显的改变。

canvas实际上有两套尺寸,一个是元素本身的大小,还有一个是元素绘图表面的大小。

当设置元素的width与height属性时,实际上同时也修改了该元素本身的大小和绘图表面的大小。

当通过CSS设置元素大小时,只会改变元素本身的大小,而不会影响到绘图表面。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • canvas知识点 - H.U.C-王子

    canvas知识点 - H.U.C-王子

    2017-04-16 10:02

  • net.sz.framework 框架 轻松搭建服务---让你更专注逻辑功能---初探 - 失足程序员

    net.sz.framework 框架 轻松搭建服务---让你更专注逻辑功能---初探 -

    2017-04-02 10:11

  • canvas实现黑客帝国矩形阵 - 风雨后见彩虹

    canvas实现黑客帝国矩形阵 - 风雨后见彩虹

    2017-03-30 09:00

  • canvas画直角坐标系 - shbwh-tswq

    canvas画直角坐标系 - shbwh-tswq

    2017-03-18 10:02

网友点评