Trabajar con transparencias en HTML5 Canvas nos ofrece mucha posibilidades. Existen diversas formas de hacerlo, en este caso veremos como hacerlo de manera sencilla con RGBA.
En artículos anteriores, hemos tratado en profundidad como trabajar con el elemento Canvas de HTML5. Desde el trabajo con animación, hasta la planificación de la creación de videojuegos.
Al dar clases de HTML5, me han consultado en varias oportunidades como podemos darle transparencia a un objeto que hayamos creado dentro de nuestro Canvas. Una forma práctica para lograrlo es al «pintar» o «llenar» la forma, hacerlo con RGBA. ¿Qué nos permite el RGBA? Muy sencillo, además de indica los colores Rojo, Verde y Azul, podemos darle un número más que indica el canal alfa, que en este caso representa la opacidad. Podemos darle valores de entre 0 a 1, donde 0 es totalmente transparente y 1 es totalmente opaco. Muchos alumnos se sorprenden con la facilidad que se puede lograr este efecto.
Transparencia en un Canvas: ejemplo de código
Para comprender mejor las características de Canvas, nada mejor que ver este elemento en acción. Veamos el código JavaScript para que un canvas pueda tener un color de fondo con transparencia:
const contexto = document.getElementById('lienzo').getContext("2d"); contexto.fillStyle = "rgba(180,155,125,0.4)"; contexto.fillRect(50,50,250,250);
Vale aclarar que ese código debe estar contenido en un código de JavaScript. En este caso 'lienzo'
es la id del elemento canvas al que estamos afectando. El resultado será un cuadrado de 250px de lado y con una opacidad del 0,4 en el elemento, cuyo color está dado por los valores de rojo, verde y azul pasados en el fillStyle
.
Otra manera de trabajar con transparencias en HTML5 Canvas es hacerlo mediante el atributo globalAlpha, que nos permitirá realizar diferentes tipos de composiciones entre las formas que se encuentran dentro del Canvas.