## 第三课时:保存和恢复
`CanvasRenderingContext2D.save()`方法用于将画布的当前样式保存到堆栈,相当于在内存之中产生一个样式快照。
~~~
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.save();
~~~
上面代码中,`save()`会为画布的默认样式产生一个快照。
`CanvasRenderingContext2D.restore()`方法将画布的样式恢复到上一个保存的快照,如果没有已保存的快照,则不产生任何效果。
上下文环境,restore方法用于恢复到上一次保存的上下文环境。
~~~
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.save();
ctx.fillStyle = 'green';
ctx.restore();
ctx.fillRect(10, 10, 100, 100);
~~~
上面代码画一个矩形。矩形的填充色本来设为绿色,但是`restore()`方法撤销了这个设置,将样式恢复上一次保存的状态(即默认样式),所以实际的填充色是黑色(默认颜色)。
- 第一章:音视频
- 第一节:概述
- 第二节:媒体元素
- 第三节:视频元素
- 第四节:音频元素
- 第四节:事件
- 第二章:高德地图
- 第三章:Storage 接口
- 第一节:概述
- 第二节:属性和方法
- 第三节:事件
- 第四章:IndexedDB
- 第一节:概述
- 第二节:基本概念
- 第三节:indexedDB 对象
- 第四节:IDBRequest 对象
- 第五节:IDBDatabase 对象
- 第六节:IDBObjectStore 对象
- 第七节:IDBTransaction 对象
- 第八节:IDBIndex 对象
- 第九节:IDBCursor 对象
- 第十节:IDBKeyRange 对象
- 第十一节:操作流程
- 第五章:Canvas
- 第一节:概述
- 第二节:绘制图像
- 第一课时:路径
- 第二课时:线型
- 第三课时:矩形
- 第四课时:弧线
- 第五课时:文本
- 第六课时:渐变色和图像填充
- 第七课时:阴影
- 第三节:图像处理
- 第一课时:写入图像
- 第二课时:像素读写
- 第三课时:保存和恢复
- 第四课时:画布
- 第五课时:图像变换
- 第四节:元素方法
- 第一课时:toDataURL()
- 第二课时:toBlob()
- 第五节:使用实例
- 第一课时:动画效果
- 第二课时:像素处理