El contexto del canvas tiene una pila de estados. El estado del contexto del canvas contiene los valores actuales de distintos parámetros que se han fijado para el canvas:
- Las transformaciones: traslación, rotación, escalado
- La región de dibujo (clipping region)
- Los valores actuales de los atributos: strokeStyle, fillStyle, globalAlpha, lineWidth, lineCap, lineJoin, miterLimit, shadowOffsetX, shadowOffsetY, shadowBlur, shadowColor, globalCompositeOperation, font, textAlign, textBaseline.
- guardar el estado
- hacer las modificaciones
- dibujar lo que queramos con los nuevos ajustes
- recuperar el estado
- context.save(): guarda el estado actual en la parte superior de la pila
- context.restore(): saca (y aplica al contexto) el estado de la parte superior de la pila
Ejemplo
<!DOCTYPE html> <html> <head> </head> <body> <canvas id="my_canvas" width="300px" height="200px" style="border:1px solid #000000;"></canvas> <script type="text/javascript"> var canvas = document.getElementById('my_canvas'); var ctx = canvas.getContext('2d'); var x = 10; var y = 10; var w = 50; var h = 50; // estado original: 0 ctx.fillRect(x, y, w, h); ctx.save(); // estado 1 ctx.fillStyle = "#ff0000"; // rojo ctx.fillRect(x+w, y, w, h); ctx.save(); // estado 2 ctx.fillStyle = "#00ff00"; // verde ctx.fillRect(x+2*w, y, w, h); // recuperamos el estado 1 ctx.restore(); ctx.fillRect(x+3*w, y, w, h); // recuperamos el estado 0 ctx.restore(); ctx.fillRect(x+4*w, y, w, h); </script> </body> </html>
En este ejemplo únicamente hemos modificado el color de relleno, pero el mismo principio se aplica a cualquiera de los parametros contenidos en el contexto.
Esta entrada continua la entrada anterior: Transformaciones en el canvas.
No hay comentarios:
Publicar un comentario