save: save方法会保存当前canvas状态作为一个layer(图层),添加到canvas栈中
restore: restore方法会恢复到上一次save之前的状态,此时canvas栈会推出当前顶层的layer,然后将之前倒数第二层的layer弹到顶层。
简单的说,save往栈中压入一个layer,restore推出栈中的最后一个(先入后出原则)
可以save多次,也可以restore多次,但restore次数不可大于save次数,否则引发错误
demo:
- 先save一下初始状态
- 再平移到100, 100绘制圆形渐变
- 再恢复到save之前的状态
- 绘制一个矩形