files/en-us/web/api/canvasrenderingcontext2d/save/index.md
{{APIRef("Canvas API")}}
The
CanvasRenderingContext2D.save()
method of the Canvas 2D API saves the entire state of the canvas by pushing the current
state onto a stack.
save()
None.
None ({{jsxref("undefined")}}).
The drawing state that gets saved onto a stack consists of:
This example uses the save() method to save the current state and
restore() to restore it later, so that you are able to draw a rect with the
current state later.
<canvas id="canvas"></canvas>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
// Save the current state
ctx.save();
ctx.fillStyle = "green";
ctx.fillRect(10, 10, 100, 100);
// Restore to the state saved by the most recent call to save()
ctx.restore();
ctx.fillRect(150, 40, 100, 100);
{{ EmbedLiveSample('Saving_the_drawing_state', 700, 180) }}
{{Specifications}}
{{Compat}}