文本
- font设置文本的字号,字体等属性
- textAlign 水平对齐
- textBaseline 垂直对齐
- 文本的绘制
//填充文字
fillText(text,x,y,maxWidth)
//描边文字
strokeText(text,x,y,maxWidth)
//获取文字宽度的方法
measureText(text)
图像
- drawImage()
- 绘图+位移:drawImage(image,x,y)
- 绘图+位移+缩放:drawImage(image,x,y,width,height)
- 绘图+裁切+位移+缩放:drawImage(image,x1,y1,w1,h1,x2,y2,w2,h2)
ctx.drawImage(
img,
//裁剪的位置,代码表示右半角
width/2,height/2,
//裁剪的尺寸,代码表示整个视图变为原来的四分之一
width/2,height/2,
//图像基于canvas的位置
50,50,
//缩放
width,height
)
像素操作
- ImageData
- 是图片的数据化
- data:Uint8ClampedArray[r,g,b,a,r,g,b,a,r,g,b,a,r,g,b,a](8位无符号整型固定数组)
- width:整数
- height:整数
- 遍历像素
for(let i=0;i<arr.length;i+=4){
let r=data[i+0]
let g=data[i+1]
let b=data[i+2]
let a=data[i+3]
console.log(r,g,b,a)
}
for(let y=0;y<h;y++){
for(let x=0;x<w;x++){
let ind=(y*w+x)*4
let r=data[ind+0]
let g=data[ind+1]
let b=data[ind+2]
let a=data[ind+3]
console.log(r,g,b,a)
}
}
变换
- 状态管理
- 管理上下文对象的状态,状态也就是属性,比如描边颜色,投影
- save()保存当前状态
- restore()恢复上一次保存的状态
- 变换
- 移动 translate(x,y)
- 旋转 rotate(angle)
- 缩放 scale(x,y)