官方描述:
save():保存当前环境的状态
restore():返回之前保存过的路径状态和属性
理解:
save()是个压栈的动作,就是将你画好的一幅图保存起来,准确的说是保存当前环境的状态。
restore()与save()相对应是一个出栈的动作,把你最近一次保存当前环境的状态取出,并在此状态下继续下一步操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>save()和restore()示例</title>
</head>
<body>
<canvas id="ctx" width="600" height="300" style="border: 2px solid">浏览器不支持</canvas>
<script>
var context = document.getElementById("ctx").getContext("2d");
//第一次设置填充绘画的颜色为蓝色
context.fillStyle="blue";
//压栈保存
context.save();
//开始一条绘画路径
context.beginPath();
context.rect(0,0,200,300);
context.fill();
context.closePath();
//重置绘画路径一次
context.beginPath();
//第二次设置填充绘画的颜色为粉红色
context.fillStyle="pink";
context.rect(200,0,200,300);
context.fill();
context.closePath();
//取出保存点
context.restore();
//重置绘画路径二次 并填充绘画的颜色为save()之前的蓝色
context.beginPath();
context.rect(400,0,200,300);
context.fill();
context.closePath();
</script>
</body>
</html>