restore()メソッドは、描画状態を保存した時点のものに戻す際に使用します。
save()メソッドでの保存以降に指定した描画スタイルはリセットされます。
現在の塗りの色・輪郭の色・透明度・線の太さ… などの描画スタイルをsave()メソッドで保存しておくことで、
その描画スタイルをrestore()メソッドで復元して再利用することができます。
描画状態が保存されていない場合には、restore()メソッドを実行しても何も起きません。
save()メソッドで保存、restore()メソッドで復元できる描画状態は、以下の通りです。
これらのどれかを指定できるわけではなく、これら全体を保存・復元します。
現在のパスと現在のビットマップは、描画状態の一部ではないので混同しないようにしてください。
現在のパスは持続するものであり、beginPath()メソッドによってのみリセットできます。
現在のビットマップはcanvasのプロパティであり、コンテキストではありません。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvasで図形を描く</title>
<script type="text/javascript">
<!--
function test() {
//描画コンテキストの取得
var canvas = document.getElementById('sample');
if (canvas.getContext) {
var context = canvas.getContext('2d');
//ここに具体的な描画内容を指定する
//塗りスタイルに青色を指定する
context.fillStyle = "rgb(0, 0, 255)";
//その描画状態を保存する
context.save();
//塗りスタイルに赤色を指定して、塗りつぶしの四角形を描く
context.fillStyle = "rgb(255, 0, 0)";
context.fillRect(10,10,100,100);
//描画状態を復元して、塗りつぶしの四角形を描く
context.restore();
context.fillRect(150,10,100,100);
}
}
//-->
</script>
</head>
<body onLoad="test()">
<h2>Canvasで図形を描く</h2>
<canvas width="300" height="150" id="sample" style="background-color:yellow;">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
</body>
</html>