## 第一节:概述
`<canvas>`元素用于生成图像。它本身就像一个画布,JavaScript 通过操作它的 API,在上面生成图像。它的底层是一个个像素,基本上`<canvas>`是一个可以用 JavaScript 操作的位图(bitmap)。
使用 Canvas API 之前,需要在网页里面新建一个`<canvas>`元素。
~~~
<canvas id="myCanvas" width="400" height="250">
您的浏览器不支持 Canvas
</canvas>
~~~
如果浏览器不支持这个 API,就会显示`<canvas>`标签中间的文字:“您的浏览器不支持 Canvas”。
每个 Canvas 对象元素存在着一个默认的宽高,宽度为 300px,高度为 150px。
* 通过 HTML 属性设置宽高,会调整画布的大小。
* 通过样式来设置宽和高,设置一条边的时候,另外一条边会进行保持纵横比的等比缩放。如果同时设置两条边,画布会在原来默认宽高的基础上,拉伸画布,而不是等比缩放。
* 通过 JS 设置对象宽高属性,如果直接设置`canvas`对象的`width`和`height`属性,那么就是设置的画布的大小(没有拉伸),如果是设置`canvas`对象中`style`属性的`width`和`height`属性,那么画布就会进行拉伸放大。
每个`<canvas>`元素都有一个对应的`CanvasRenderingContext2D`对象(上下文对象)。Canvas API 就定义在这个对象上面。
~~~
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
~~~
上面代码中,`<canvas>`元素节点对象的`getContext()`方法,返回的就是`CanvasRenderingContext2D`对象。
注意,Canvas API 需要`getContext`方法指定参数`2d`,表示该`<canvas>`节点生成 2D 的平面图像。如果参数是`webgl`,就表示用于生成 3D 的立体图案。
- 第一章:音视频
- 第一节:概述
- 第二节:媒体元素
- 第三节:视频元素
- 第四节:音频元素
- 第四节:事件
- 第二章:高德地图
- 第三章:Storage 接口
- 第一节:概述
- 第二节:属性和方法
- 第三节:事件
- 第四章:IndexedDB
- 第一节:概述
- 第二节:基本概念
- 第三节:indexedDB 对象
- 第四节:IDBRequest 对象
- 第五节:IDBDatabase 对象
- 第六节:IDBObjectStore 对象
- 第七节:IDBTransaction 对象
- 第八节:IDBIndex 对象
- 第九节:IDBCursor 对象
- 第十节:IDBKeyRange 对象
- 第十一节:操作流程
- 第五章:Canvas
- 第一节:概述
- 第二节:绘制图像
- 第一课时:路径
- 第二课时:线型
- 第三课时:矩形
- 第四课时:弧线
- 第五课时:文本
- 第六课时:渐变色和图像填充
- 第七课时:阴影
- 第三节:图像处理
- 第一课时:写入图像
- 第二课时:像素读写
- 第三课时:保存和恢复
- 第四课时:画布
- 第五课时:图像变换
- 第四节:元素方法
- 第一课时:toDataURL()
- 第二课时:toBlob()
- 第五节:使用实例
- 第一课时:动画效果
- 第二课时:像素处理