Canvas中保存画布状态及还原

1.save();

 restore();

示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>form测试</title>
    <style type="text/css">
        #can{
            background: pink;
        }
    </style>
</head>
<body>
  <canvas id="can" width="800px" height="600pxf"></canvas>
  <script type="text/javascript">
      var canvas=document.getElementById("can");
      var ctx=canvas.getContext("2d");
//      三角形
      ctx.beginPath();
      ctx.moveTo(100,50);
      ctx.lineTo(40,80);
      ctx.lineTo(120,100);
      ctx.closePath();
      ctx.lineWidth=10;
      ctx.fillStyle='yellow';
      ctx.strokeStyle="blue";
      ctx.fill();
      ctx.stroke();
//            ctx.beginPath();
      ctx.arc(300,300,100,30,270,false);
      ctx.closePath();
      ctx.fill();
//      矩形
      ctx.fillRect(500,300,100,100);

      ctx.fillStyle = "rgba(255,0,0,1)";    //给定画笔颜色
      ctx.save();    //保存颜色
      ctx.beginPath();
      ctx.rect(300,300,110,110);
      ctx.fill();
      //新设置一下画笔并作画
      ctx.fillStyle = '#0f0';
      ctx.save();
      ctx.fillRect(300,400,111,111);
      ctx.fillStyle = 'blue';
      //还原到上次储存的地方
      ctx.restore();
      ctx.restore();
      ctx.fillRect(300,500,111,111);   //再次绘制矩形,颜色为restore后的颜色


  </script>
</body>
</html>
注意:save()和restore()操作可以多次使用,但是每一次restore只能还原到距离最近的一次,也就是后保存的先还原。

运行效果:


  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值