【基础知识】HTML5 Canvas中save()和restore()的使用/Canvas状态的保存和恢复(应用背景)

我的处女作《Canvas系列教程》在我的Github上正在连载更新,希望能得到您的关注和支持,让我有更多的动力进行创作。

教程介绍、教程目录等能在README里查阅。

传送门:https://github.com/827652549/CanvasStudy

解释:

save()和restore()时保存和恢复Canvas的状态,如画笔的颜色、宽度等等,并不包括画布上的“像素图像”,目的是为了方便来回切换不同的样式所需要的状态。

在Canvas环境中绘图时,可以利用所谓的绘图堆栈状态。每个状态随时存储Canvas上下文数据。下面是存储在状态堆栈的数据列表。

应用背景

在进行绘图操作时,有时候只是想临时性地改变这些属性,比如说,可能需要在背景绘制细网格线,然后用粗一些的线条在网格之上进行后续的绘图。在这种情况下,需要于绘制网格线时临时性得血钙lineWidth的属性。

使用

Canvas的API提供了两个名为save()和restore()的方法,用于保存以及回复当前canvas绘图环境的所有属性。

function drawGrid(strokeStyle,fillStyle) {
        context.save();//保存这个绘图环境状态到栈中
        
        context.fillStyle=fillStyle;
        context.strokeStyle=strokeStyle;
        
        //画网格...(代码省略)
        
        context.restore();//从之前的状态从栈中释放
    }

引用

这里是一个图示讲解save和restore的,https://juejin.im/post/5c6bcb396fb9a049f66cb016

等之后在真实使用save和restore时,再回到该博文补充该知识的更加核心的东西。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值