HTML 画布参考手册

描述

HTML5 <canvas> 画布标签用于通过脚本(通常是JavaScript)动态绘制图形。

但是 <canvas> 元素本身没有绘图功能(它只是一个图形容器)——必须使用脚本来实际绘制图形。

getContext() 方法返回一个对象,该对象提供在画布上绘制的方法和属性。

本文将介绍 getContext("2d") 对象的属性和方法,该对象可用于在画布上绘制文本、线、框、圆等。


浏览器支持

表中的数字指定了完全支持该元素的第一个浏览器版本。

元素
<canvas> 4.0 9.0 2.0 3.1 9.0

Internet Explorer 9, Firefox, Opera, Chrome, 和 Safari 支持 <canvas> 及其属性和方法。

注释: Internet Explorer 8 和早期版本不支持 <canvas> 元素。


颜色、样式和阴影

属性 描述
fillStyle 设置或返回用于填充图形的颜色、渐变色或图案
strokeStyle 设置或返回用于笔划的颜色、渐变或图案
shadowColor 设置或返回用于阴影的颜色
shadowBlur 设置或返回阴影的模糊级别
shadowOffsetX 设置或返回阴影与形状的水平距离
shadowOffsetY 设置或返回阴影与形状的垂直距离

方法 描述
createLinearGradient() 创建线性渐变(用于画布内容)
createPattern() 在指定的方向上重复指定的元素
createRadialGradient() 创建径向/圆形渐变(用于画布内容)
addColorStop() 指定渐变对象中的颜色和停止位置


线条样式

属性 描述
lineCap 设置或返回线条的端点封口样式
lineJoin 设置或返回两条线相交时创建的角点类型
lineWidth 设置或返回当前线宽
miterLimit 设置或返回最大斜接长度

矩形

方法 描述
rect() 创建一个矩形
fillRect() 绘制一个"填充"矩形
strokeRect() 绘制矩形(无填充)
clearRect() 清除给定矩形内的指定像素

路径

方法 描述
fill() 填充当前图形(路径)
stroke() 实际绘制您定义的路径
beginPath() 开始一条路径,或重置当前路径
moveTo() 将路径移动到画布中的指定点,而不创建直线
closePath() 创建从当前点返回起点的路径
lineTo() 添加一个新点,并从画布中的最后一个指定点创建一条到该点的直线
clip() 从原始画布剪辑任意形状和大小的区域
quadraticCurveTo() 创建二次Bézier曲线
bezierCurveTo() 创建三次Bézier曲线
arc() 创建圆弧/曲线(用于创建圆或圆的一部分)
arcTo() 在两条切线之间创建圆弧/曲线
isPointInPath() 如果指定点位于当前路径中,则返回true,否则返回false

变换

方法 描述
scale() 缩放当前图形的大小
rotate() 旋转当前图形
translate() 在画布上重新映射(0,0)位置
transform() 替换图形的当前变换矩阵
setTransform() 将当前变换重置为单位矩阵。然后运行 transform()

文本

属性 描述
font 设置或返回文本内容的当前字体属性
textAlign 设置或返回文本内容的当前对齐方式
textBaseline 设置或返回绘制文字时使用的当前文字基线

方法 描述
fillText() 在画布上绘制"填充"文本
strokeText() 在画布上绘制文本(无填充)
measureText() 返回包含指定文本宽度的对象

图像绘制

方法 描述
drawImage() 在画布上绘制图像、画布或视频

像素操作

属性 描述
width 返回ImageData对象的宽度
height 返回ImageData对象的高度
data 返回包含指定ImageData对象的图像数据的对象

方法 描述
createImageData() 创建一个新的空白ImageData对象
getImageData() 返回一个ImageData对象,该对象复制画布上指定矩形的像素数据
putImageData() 将图像数据(来自指定的ImageData对象)放回画布

合成

属性 描述
globalAlpha 设置或返回图形的当前alpha或透明度值
globalCompositeOperation 设置或返回如何在现有图像上绘制新图像

其他

方法 描述
save() 保存当前上下文的状态
restore() 返回以前保存的路径状态和属性
createEvent()  
getContext()  
toDataURL()