The save function
The save
function saves the state of the canvas
. It is most commonly used when
using the clip
function - so that you can save
the state of the canvas
, clip it, do some drawing whilst the canvas
is clipped
and then restore the canvas
to as it was
before the canvas
was clipped, allowing you to draw freely again.
An example of the save
function can be found in
the page explaining the clip
function
.
What is saved by the save function?
The following settings are saved by the save
function (and also are
subsequently restored when you call restore
):
- The current transformation matrix (ie the translation, rotation and scale settings)
- The clipping region
-
The following settings:
strokeStyle
,fillStyle
,globalAlpha
,lineWidth
,lineCap
,lineJoin
,miterLimit
,shadowOffsetX
,shadowOffsetY
,shadowBlur
,shadowColor
,globalCompositeOperation
,font
,textAlign
,textBaseline
,imageSmoothingEnabled
(imageSmoothingEnabled
is a recent addition so may not be supported).
An example
Here the canvas
is first saved, then clipped to a small rectangle
(but not stroked
or filled). Then a bigger rectangle is drawn - though
because the canvas
is clipped the only thing that is seen is the clipped
area. Then,
using the restore
function, the canvas
is
returned to the state it was in before it was clipped.
This demonstrates how the canvas
state can be saved and then subsequently
restored.
<script> window.onload = function () { var canvas = document.getElementById("cvs"); var context = canvas.getContext('2d'); context.save(); context.beginPath(); context.rect(50,50,50,50); context.clip(); context.fillRect(0,0,600,250); context.restore(); } </script>