颜色、样式和阴影
属性 | 描述 |
---|---|
fillStyle | 设置或返回用于填充绘画的颜色、渐变或模式 |
strokeStyle | 设置或返回用于笔触的颜色、渐变或模式 |
shadowColor | 设置或返回用于阴影的颜色 |
shadowBlur | 设置或返回用于阴影的模糊级别 |
shadowOffsetX | 设置或返回阴影距形状的水平距离 |
shadowOffsetY | 设置或返回阴影距形状的垂直距离 |
方法 | 描述 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
createLinearGradient() | 创建线性渐变(用在画布内容上) JavaScript 语法: 参数值
| ||||||||||||||
createPattern() | 在指定的方向上重复指定的元素 JavaScript 语法: 参数值
| ||||||||||||||
createRadialGradient() | 创建放射状/环形的渐变(用在画布内容上) JavaScript 语法: 参数值
| ||||||||||||||
addColorStop() | 规定渐变对象中的颜色和停止位置 JavaScript 语法: 参数值
|
线条样式
属性 | 描述 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lineCap | 设置或返回线条的结束端点样式 定义和用法lineCap 属性设置或返回线条末端线帽的样式。 注释:"round" 和 "square" 会使线条略微变长。
属性值
| ||||||||||||
lineJoin | 设置或返回两条线相交时,所创建的拐角类型 定义和用法lineJoin 属性设置或返回所创建边角的类型,当两条线交汇时。 注释:值 "miter" 受 miterLimit 属性的影响。
属性值
| ||||||||||||
lineWidth | 设置或返回当前的线条宽度 定义和用法lineWidth 属性设置或返回当前线条的宽度,以像素计。
属性值
| ||||||||||||
miterLimit | 设置或返回最大斜接长度 定义和用法miterLimit 属性设置或返回最大斜接长度。 斜接长度指的是在两条线交汇处内角和外角之间的距离。 ![]() 提示:只有当 lineJoin 属性为 "miter" 时,miterLimit 才有效。 边角的角度越小,斜接长度就会越大。 为了避免斜接长度过长,我们可以使用 miterLimit 属性。 如果斜接长度超过 miterLimit 的值,边角会以 lineJoin 的 "bevel" 类型来显示(图解 3): ![]()
属性值
|
矩形
方法 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
rect() | 创建矩形 定义和用法rect() 方法创建矩形。 提示:请使用 stroke() 或 fill() 方法在画布上实际地绘制矩形。 JavaScript 语法: 参数值
| ||||||||||
fillRect() | 绘制“被填充”的矩形 定义和用法fillRect() 方法绘制“已填色”的矩形。默认的填充颜色是黑色。 提示:请使用 fillStyle 属性来设置用于填充绘图的颜色、渐变或模式。 JavaScript 语法: 参数值
| ||||||||||
strokeRect() | 绘制矩形(无填充) 定义和用法strokeRect() 方法绘制矩形(不填色)。笔触的默认颜色是黑色。 提示:请使用 strokeStyle 属性来设置笔触的颜色、渐变或模式。 JavaScript 语法: 参数值
| ||||||||||
clearRect() | 在给定的矩形内清除指定的像素 定义和用法clearRect() 方法清空给定矩形内的指定像素。 JavaScript 语法: 参数值
|
路径
方法 | 描述 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fill() | 填充当前绘图(路径) 定义和用法fill() 方法填充当前的图像(路径)。默认颜色是黑色。 提示:请使用 fillStyle 属性来填充另一种颜色/渐变。 注释:如果路径未关闭,那么 fill() 方法会从路径结束点到开始点之间添加一条线,以关闭该路径,然后填充该路径。 JavaScript 语法: | ||||||||||||||
stroke() | 绘制已定义的路径 定义和用法stroke() 方法会实际地绘制出通过 moveTo() 和 lineTo() 方法定义的路径。默认颜色是黑色。 提示:请使用 strokeStyle 属性来绘制另一种颜色/渐变。 JavaScript 语法: | ||||||||||||||
beginPath() | 起始一条路径,或重置当前路径 定义和用法beginPath() 方法开始一条路径,或重置当前的路径。 提示:请使用这些方法来创建路径:moveTo()、lineTo()、quadricCurveTo()、bezierCurveTo()、arcTo() 以及 arc()。 提示:请使用 stroke() 方法在画布上绘制确切的路径。 JavaScript 语法: | ||||||||||||||
moveTo() | 把路径移动到画布中的指定点,不创建线条 定义和用法fillRect() 方法绘制“已填色”的矩形。默认的填充颜色是黑色。 提示:请使用 stroke() 方法在画布上绘制确切的路径。 JavaScript 语法: | ||||||||||||||
closePath() | 创建从当前点回到起始点的路径 定义和用法closePath() 方法创建从当前点到开始点的路径。 提示:请使用 stroke() 方法在画布上绘制确切的路径。 提示:请使用 fill() 方法来填充图像(默认是黑色)。请使用 fillStyle 属性来填充另一个颜色/渐变。 JavaScript 语法: | ||||||||||||||
lineTo() | 添加一个新点,然后在画布中创建从该点到最后指定点的线条 定义和用法lineTo() 方法添加一个新点,然后创建从该点到画布中最后指定点的线条(该方法并不会创建线条)。 提示:请使用 stroke() 方法在画布上绘制确切的路径。 JavaScript 语法: 参数值
| ||||||||||||||
clip() | 从原始画布剪切任意形状和尺寸的区域 定义和用法clip() 方法从原始画布中剪切任意形状和尺寸。 提示:一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内(不能访问画布上的其他区域)。您也可以在使用 clip() 方法前通过使用 save() 方法对当前画布区域进行保存,并在以后的任意时间对其进行恢复(通过 restore() 方法)。 JavaScript 语法: | ||||||||||||||
quadraticCurveTo() | 创建二次贝塞尔曲线 定义和用法quadraticCurveTo() 方法通过使用表示二次贝塞尔曲线的指定控制点,向当前路径添加一个点。 提示:二次贝塞尔曲线需要两个点。第一个点是用于二次贝塞尔计算中的控制点,第二个点是曲线的结束点。曲线的开始点是当前路径中最后一个点。如果路径不存在,那么请使用 beginPath() 和 moveTo() 方法来定义开始点。 ![]()
提示:请查看 bezierCurveTo() 方法。它有两个控制点,而不是一个。 JavaScript 语法: 参数值
| ||||||||||||||
bezierCurveTo() | 创建三次方贝塞尔曲线 定义和用法bezierCurveTo() 方法通过使用表示三次贝塞尔曲线的指定控制点,向当前路径添加一个点。 提示:三次贝塞尔曲线需要三个点。前两个点是用于三次贝塞尔计算中的控制点,第三个点是曲线的结束点。曲线的开始点是当前路径中最后一个点。如果路径不存在,那么请使用 beginPath() 和 moveTo() 方法来定义开始点。 ![]()
提示:请查看 quadraticCurveTo() 方法。它有一个控制点,而不是两个。 JavaScript 语法: 参数值
| ||||||||||||||
arc() | 创建弧/曲线(用于创建圆形或部分圆) 定义和用法arc() 方法创建弧/曲线(用于创建圆或部分圆)。 提示:如需通过 arc() 来创建圆,请把起始角设置为 0,结束角设置为 2*Math.PI。 提示:请使用 stroke() 或 fill() 方法在画布上绘制实际的弧。 ![]()
JavaScript 语法: 参数值
| ||||||||||||||
arcTo() | 创建两切线之间的弧/曲线 定义和用法arcTo() 方法在画布上创建介于两个切线之间的弧/曲线。 提示:请使用 stroke() 方法在画布上绘制确切的弧。 JavaScript 语法: 参数值
| ||||||||||||||
isPointInPath() | 如果指定的点位于当前路径中,则返回 true,否则返回 false 定义和用法isPointInPath() 方法返回 true,如果指定的点位于当前路径中;否则返回 false。 JavaScript 语法: 参数值
|
转换
方法 | 描述 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scale() | 缩放当前绘图至更大或更小 定义和用法scale() 方法缩放当前绘图,更大或更小。 注释:如果您对绘图进行缩放,所有之后的绘图也会被缩放。定位也会被缩放。如果您 scale(2,2),那么绘图将定位于距离画布左上角两倍远的位置。 JavaScript 语法: 参数值
| ||||||||||||||
rotate() | 旋转当前绘图 定义和用法rotate() 方法旋转当前的绘图。 JavaScript 语法: 参数值
| ||||||||||||||
translate() | 重新映射画布上的 (0,0) 位置 定义和用法translate() 方法重新映射画布上的 (0,0) 位置。 注释:当您在 translate() 之后调用诸如 fillRect() 之类的方法时,值会添加到 x 和 y 坐标值上。 ![]() JavaScript 语法: 参数值
| ||||||||||||||
transform() | 替换绘图的当前转换矩阵 定义和用法画布上的每个对象都拥有一个当前的变换矩阵。 transform() 方法替换当前的变换矩阵。它以下面描述的矩阵来操作当前的变换矩阵: 换句话说,transform() 允许您缩放、旋转、移动并倾斜当前的环境。 注释:该变换只会影响 transform() 方法调用之后的绘图。 注释:transform() 方法的行为相对于由 rotate(), scale(), translate(), or transform() 完成的其他变换。例如:如果您已经将绘图设置为放到两倍,则 transform() 方法会把绘图放大两倍,您的绘图最终将放大四倍。 提示:请查看 setTransform() 方法,它不会相对于其他变换来发生行为。 JavaScript 语法: 绘制一个矩形;通过 transform() 添加一个新的变换矩阵,再次绘制矩形;添加一个新的变换矩阵,然后再次绘制矩形。请注意,每当您调用 transform() 时,它都会在前一个变换矩阵上构建: 参数值
| ||||||||||||||
setTransform() | 将当前转换重置为单位矩阵。然后运行 transform() 定义和用法画布上的每个对象都拥有一个当前的变换矩阵。 setTransform() 方法把当前的变换矩阵重置为单位矩阵,然后以相同的参数运行 transform()。 换句话说,setTransform() 允许您缩放、旋转、移动并倾斜当前的环境。 注释:该变换只会影响 setTransform() 方法调用之后的绘图。 JavaScript 语法: 绘制一个矩形,通过 setTransform() 重置并创建新的变换矩阵,再次绘制矩形,重置并创建新的变换矩阵,然后再次绘制矩形。请注意,每当您调用 setTransform() 时,它都会重置前一个变换矩阵然后构建新的矩阵,因此在下面的例子中,不会显示红色矩形,因为它在蓝色矩形下面:
参数值
|
文本
属性 | 描述 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
font | 设置或返回文本内容的当前字体属性 定义和用法font 属性设置或返回画布上文本内容的当前字体属性。 font 属性使用的语法与 CSS font 属性相同。
属性值
| ||||||||||||||||||||||||||||
textAlign | 设置或返回文本内容的当前对齐方式 定义和用法textAlign 属性根据锚点,设置或返回文本内容的当前对齐方式。 通常,文本会从指定位置开始,不过,如果您设置为 textAlign="right" 并将文本放置到位置 150,那么会在位置 150 结束。 提示:使用 fillText() 或 strokeText() 方法在实际地在画布上绘制并定位文本。
属性值
| ||||||||||||||||||||||||||||
textBaseline | 设置或返回在绘制文本时使用的当前文本基线 定义和用法textBaseline 属性设置或返回在绘制文本时的当前文本基线。 下面的图示演示了 textBaseline 属性支持的各种基线: ![]() 注释:fillText() 或 strokeText() 方法在画布上定位文本时,将使用指定的 textBaseline 值。
属性值
|
方法 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
fillText() | 在画布上绘制“被填充的”文本 定义和用法fillText() 方法在画布上绘制填色的文本。文本的默认颜色是黑色。 提示:请使用 font 属性来定义字体和字号,并使用 fillStyle 属性以另一种颜色/渐变来渲染文本。 JavaScript 语法: 参数值
| ||||||||||
strokeText() | 在画布上绘制文本(无填充) 定义和用法strokeText() 方法在画布上绘制文本(没有填色)。文本的默认颜色是黑色。 提示:请使用 font 属性来定义字体和字号,并使用 strokeStyle 属性以另一种颜色/渐变来渲染文本。 JavaScript 语法: 参数值
| ||||||||||
measureText() | 返回包含指定文本宽度的对象 定义和用法measureText() 方法返回包含一个对象,该对象包含以像素计的指定字体宽度。 提示:如果您需要在文本向画布输出之前,就了解文本的宽度,那么请使用该方法。 JavaScript 语法: 参数值
|
图像绘制
方法 | 描述 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
drawImage() | 向画布上绘制图像、画布或视频 定义和用法drawImage() 方法在画布上绘制图像、画布或视频。 drawImage() 方法也能够绘制图像的某些部分,以及/或者增加或减少图像的尺寸。 JavaScript 语法 1在画布上定位图像: JavaScript 语法 2在画布上定位图像,并规定图像的宽度和高度: JavaScript 语法 3剪切图像,并在画布上定位被剪切的部分: 参数值
|
像素操作
属性 | 描述 | ||||
---|---|---|---|---|---|
width | 返回 ImageData 对象的宽度 定义和用法width 属性返回 ImageData 对象的宽度,以像素计。 提示:请参阅 createImageData()、getImageData() 以及 putImageData() 方法,以获得更多关于 ImageData 对象的知识。
| ||||
height | 返回 ImageData 对象的高度 定义和用法height 属性返回 ImageData 对象的高度,以像素计。 提示:请参阅 createImageData()、getImageData() 以及 putImageData() 方法,以获得更多关于 ImageData 对象的知识。
| ||||
data | 返回一个对象,其包含指定的 ImageData 对象的图像数据 定义和用法fillStyle 属性设置或返回用于填充绘画的颜色、渐变或模式。 data 属性返回一个对象,该对象包含指定的 ImageData 对象的图像数据。 对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:
color/alpha 以数组形式存在,并存储于 ImageData 对象的 data 属性中。 例子:将 ImageData 对象中的第一个像素变为红色的语法: imgData=ctx.createImageData(100,100); imgData.data[0]=255; imgData.data[1]=0; imgData.data[2]=0; imgData.data[3]=255; 将 ImageData 对象中的第二个像素变为绿色的语法: imgData=ctx.createImageData(100,100); imgData.data[4]=0; imgData.data[5]=255; imgData.data[6]=0; imgData.data[7]=255; 提示:请参阅 createImageData()、getImageData() 以及 putImageData() 方法,以获得更多关于 ImageData 对象的知识。 JavaScript 语法:imageData.data; |
方法 | 描述 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
createImageData() | 创建新的、空白的 ImageData 对象 定义和用法createImageData() 方法创建新的空白 ImageData 对象。新对象的默认像素值 transparent black。 对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:
因此 ,transparent black 表示 (0,0,0,0)。 color/alpha 以数组形式存在,并且既然数组包含了每个像素的四条信息,数组的大小是 ImageData 对象的四倍。(获得数组大小有更简单的办法,就是使用 ImageDataObject.data.length) 包含 color/alpha 信息的数组存储于 ImageData 对象的 data 属性中。 提示:在操作完成数组中的 color/alpha 信息之后,您可以使用 putImageData() 方法将图像数据拷贝回画布上。 例子:该语法把 ImageData 对象中的第一个像素变为红色: imgData=ctx.createImageData(100,100); imgData.data[0]=255; imgData.data[1]=0; imgData.data[2]=0; imgData.data[3]=255; 该语法把 ImageData 对象中的第二个像素变为红色: imgData=ctx.createImageData(100,100); imgData.data[4]=0; imgData.data[5]=255; imgData.data[6]=0; imgData.data[7]=255; JavaScript 语法有两个版本的 createImageData() 方法: 1. 以指定的尺寸(以像素计)创建新的 ImageData 对象: var imgData=context.createImageData(width,height); 2. 创建与指定的另一个 ImageData 对象尺寸相同的新 ImageData 对象(不会复制图像数据): var imgData=context.createImageData(imageData); 参数值
| ||||||||||||||||
getImageData() | 返回 ImageData 对象,该对象为画布上指定的矩形复制像素数据 定义和用法getImageData() 方法返回 ImageData 对象,该对象拷贝了画布指定矩形的像素数据。 对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:
color/alpha 以数组形式存在,并存储于 ImageData 对象的 data 属性中。 提示:在操作完成数组中的 color/alpha 信息之后,您可以使用 putImageData() 方法将图像数据拷贝回画布上。 例子:以下代码可获得被返回的 ImageData 对象中第一个像素的 color/alpha 信息: red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3]; 提示:您也可以使用 getImageData() 方法来反转画布上某个图像的每个像素的颜色。 使用该公式遍历所有的像素,并改变其颜色值: red=255-old_red; green=255-old_green; blue=255-old_blue; JavaScript 语法var imgData=context.getImageData(x,y,width,height); 参数值
| ||||||||||||||||
putImageData() | 把图像数据(从指定的 ImageData 对象)放回画布上 定义和用法putImageData() 方法将图像数据(从指定的 ImageData 对象)放回画布上。 提示:请参阅 getImageData() 方法,它可复制画布上指定的矩形的像素数据。 提示:请参阅 createImageData() 方法,它可创建新的空白 ImageData 对象。 JavaScript 语法:context.putImageData(imgData,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight); 参数值
|
合成
属性 | 描述 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
globalAlpha | 设置或返回绘图的当前 alpha 或透明值 定义和用法globalAlpha 属性设置或返回绘图的当前透明值(alpha 或 transparency)。 globalAlpha 属性值必须是介于 0.0(完全透明) 与 1.0(不透明) 之间的数字。
属性值
| ||||||||||||||||||||||||||||
globalCompositeOperation | 设置或返回新图像如何绘制到已有的图像上 定义和用法globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上。 源图像 = 您打算放置到画布上的绘图。 目标图像 = 您已经放置在画布上的绘图。
属性值
|
其他
方法 | 描述 |
---|---|
save() | 保存当前环境的状态 |
restore() | 返回之前保存过的路径状态和属性 |
createEvent() | |
getContext() | |
toDataURL() |