美文网首页
canvas操作指南

canvas操作指南

作者: cendechen | 来源:发表于2018-05-11 12:11 被阅读0次

接口指南

获取渲染上下文

var ctx = canvas.getContext('2d')

绘制形状

fillRect(x, y, width, height)
strokeRect(x, y, width, height)
clearRect(x, y, width, height)

绘制路径

beginPath() // 新建一条路径,生成之后,图形绘制命令被指向到路径上生成路径。
closePath() // 闭合路径之后图形绘制命令又重新指向到上下文中。
stroke() // 通过线条来绘制图形轮廓。
fill() //通过填充路径的内容区域生成实心的图形。
moveTo() // 移动笔触
lineTo() // 画线到一个地方
arc(x, y, radius, startAngle, endAngle, anticlockwise) // 绘制圆弧
arc(x1, y1, x2, y2, radius)  // 绘制圆弧
quadraticCurveTo(cp1x, cp2y, x, y) // 2  次贝赛尔曲线
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) //  3次贝赛尔曲线
rect() // 矩形

Path2D 对象

new Path2D()
new Path2D(path)
new Path2D(d); // 从SVG 建立Path对象

色彩

ctx.fillStyle  // 填充颜色
ctx.strokeStyle // 设置轮廓颜色
ctx.globalAlpha  // 设置全局的透明度

线型

ctx.lineWidth
ctx.lineCap
ctx.lineJoin  // 连接处的样式
ctx.miterLimit // 限制当两条线相交时交接处的最大长度
ctx.getLineDash // 返回一个包含当前虚线样式,长度为非负偶数的数组
setLineDash 设置当前虚线样式
lineDashOffset 设置虚线样式的起始偏移量

渐变

createLinearGradient(x1, y1, x2, y2)
createRadialGradient(x1, y1, r1, x2, y2, r2)
addColorStop(position, color)

图案

createPattern(image, type)

阴影

shadowOffsetX
// shadowOffsetX 和 shadowOffsetY 用来设定阴影在 X 和 Y 轴的延伸距离,它们是不受变换矩阵所影响的。负值表示阴影会往上或左延伸,正值则表示会往下或右延伸,它们默认都为 0。
shadowOffsetY
shadowBlur
//用于设定阴影的模糊程度,其数值并不跟像素数量挂钩,也不受变换矩阵的影响,默认为 0。
shadowColor
// 是标准的 CSS 颜色值,用于设定阴影颜色效果,默认是全透明的黑色。

canvas填充规则

当我们用fill api时刻,我们可以设置填充规则,

绘制文本

fillText()
strokeText()
// 文本样式
font
textAlign
textBaseline
direction
// 测量文字长度
measureText()

使用图片

drawImage(image, x, y)
drawImage(image, x, y, width, height) // 绘制图片
drawImage(image, sx, sy, swidth, sheight, dx, dy, dWdith, dHeight) // 前4个是定义图像源的切片位置和大小,后4个则是定义切片的目标显示位置和大小

注意: 控制图像的缩放行为, mozImageSmoothingEnabled 值为 false 时,图像不会平滑地缩放。默认是 true

状态保存和恢复

save() 保存当前状态
restore() 恢复上一个保存的状态
// 变形
translate(x, y)  // 它用来移动 canvas 和它的原点到一个不同的位置。
rotate(angle)
scale(x, y) 
transforms() // 矩阵变换
setTransform()
resetTransform()

组合

globalCompositeOperation //这个属性设定了在画新图形时采用的遮盖策略
clip()

像素

ImageData 对象
有width height Data属性

getImageData(left, top, width, height)
putImageData(myImageData, dx, dy)
toDataURL()
toBlob()

注意:imageSmoothingEnabled 反锯齿

相关文章

网友评论

      本文标题:canvas操作指南

      本文链接:https://www.haomeiwen.com/subject/hicfdftx.html