上下文对象 = painter
1.透明度
语法:painter.globalAlpha = 0~1;
任何操作都要在fill()之前
2.线性
1)设置线宽
painter.lineWidth = number;
2)端点
painter.linCap = 端点类型;
类型:
butt:无端点,
round:圆弧端点
square:方块端点
3)设置连接类型
painter.lineJoin="连接类型";
round:圆弧
level:截面
miter:直角
4)设置虚线
pointer.setLineDash(第一段长度,第二段长度……)
5)设置偏移
pointer.lineDashOffset = 数值;(配合虚线使用)
3.渐变
1)线性渐变
pointer.createLinerGradeent(开始横坐标,开始纵坐标,结束横坐标,结束纵坐标)
.addColorStop(0,‘green’);
2)径向渐变
pointer.createRadiaGradient(开始横坐标,开始纵坐标,开始r坐标,结束横坐标,结束纵坐标,借宿r坐标);
3.阴影与文字
1)阴影
pointer.shadowColor = "颜色";
pointer.shadowBlur = "模糊数值";
pointer.shadowOffsetY = "垂直偏移距离";
注意:阴影的设置必须在canvas之前,写在之后会导致绘制内容失败
2)文字
pointer.font = "大小 字体";
pointer.fillText(‘text content’,文本x 文本Y);
4.图片绘制
注意:必须等到图片onload完成后,在上屏,否则就会绘制失败
关键方法:pointer.drawImage();
相关方法:
pointer.drawImage(img,x,y);
pointer.drawImage(img,x,y,w,h);
pointer.drawImage(img,裁切x,裁切y,裁切宽度,裁切高度);
5.转换与变形
注意:
在canvas中变换是变化整个画布,而不是变换图形,所有的变换都必须在变换开始之前
先保存画布状态
所有变化结束后
再保存画布状态
以达到只改变目标图形的变换效果
1)translate(x,y) 位移变换
2)rotate(x,y)旋转变换
3)scale(x,y)比例变换
6.合成
pointer.globalCompositeOperation = '不同的绘制方式'
source-over 在上面画
source-in 在上面画,背景透明,溢出隐藏
source-out 在上面画,背景透溢出处现实
source-atop 在上面画 溢出隐藏
destination-over 在下面,同上
destination-in
destination-out
destination-astop
lighter 堆叠
copy 绘制显示,原图隐藏
xor 异或
7.像素集操作
1)创建指定绘制区域:pointer.createImageData(区域w,区域h)
说明:a 本方法会返回一个数组
b 数组长度是w*h*4
c 数组中每4个像素代表一个像素:r g b a
2)获取指定区域元素
pointer.getImageData(x,y,w,h);
3)绘制指定区域元素
pointer.putImageData(imageData,x,y) ;