HTML5 캔버스는 캔버스 상태를 저장하고 복원하는 두 가지 중요한 방법을 제공합니다. 캔버스 상태는 저장할 때마다 스택에 저장됩니다. 메소드가 호출되고 복원할 때마다 스택에서 마지막으로 저장된 상태가 반환됩니다. 메소드가 호출됩니다.
Sr.No. | 방법 및 설명 |
---|---|
1 | 저장() 이 메서드는 현재 상태를 스택에 푸시합니다. |
2 | 복원() 이 메서드는 스택의 최상위 상태를 팝하여 컨텍스트를 해당 상태로 복원합니다. |
예시
Canvas의 저장 및 복원 방법에 대해 학습한 다음 코드를 실행해 볼 수 있습니다.
<!DOCTYPE HTML> <html> <head> <style> #test { width: 100px; height:100px; margin: 0px auto; } </style> <script> function drawShape(){ // get the canvas element using the DOM var canvas = document.getElementById('mycanvas'); // Make sure we don't execute when canvas isn't supported if (canvas.getContext){ // use getContext to use the canvas for drawing var ctx = canvas.getContext('2d'); // draw a rectangle with default settings ctx.fillRect(0,0,150,150); // Save the default state ctx.save(); // Make changes to the settings ctx.fillStyle = '#66FFFF' ctx.fillRect( 15,15,120,120); // Save the current state ctx.save(); // Make the new changes to the settings ctx.fillStyle = '#993333' ctx.globalAlpha = 0.5; ctx.fillRect(30,30,90,90); // Restore previous state ctx.restore(); // Draw a rectangle with restored settings ctx.fillRect(45,45,60,60); // Restore original state ctx.restore(); // Draw a rectangle with restored settings ctx.fillRect(40,40,90,90); } else { alert('You need Safari or Firefox 1.5+ to see this demo.'); } } </script> </head> <body id = "test" onload = "drawShape();"> <canvas id = "mycanvas"></canvas> </body> </html>