Ruido de fondo
A continuación queremos construir un patrón que imita el ruido de fondo, como el de las pantallas antiguas de televisor.
Para esto dibujamos 10000 pequeños rectángulos ( 1 x 1 ) escampados aleatoriamente por todo el <canvas>
Utilizamos Math.random
y Math.floor
para calcular las coordinadas del origen (x,y
) de cada rectángulo.
Sabemos que Math.random
devuelve un número aleatorio entre 0 (inclusivo) y 1 (exclusivo) y que las coordenadas x e y tienen que tener valores entre 0 y la anchura, respectivamente la altura del <canvas>
.
var x = Math.random() *canvas.width;
var y = Math.random() *canvas.height;
También sabemos que las coordinadas del origen ( x,y
) de cada rectángulo, que tienen que ser íntegros. Para esto utilizamos Math.floor
que redondea un número hacia abajo a su entero más cercano.
var x = Math.floor(Math.random() *canvas.width);
var y = Math.floor(Math.random() *canvas.height);
Cada rectángulo tendrá una opacidad diferente ( número entre 0 y 1 ), y para esto utilizamos de nuevo Math.random
.
var canvas = document.getElementById("lienzo");
if (canvas && canvas.getContext) {
var ctx = canvas.getContext("2d");
if (ctx) {
ctx.fillStyle = "#aaa";
//10000 pequeños rectángulos escampados aleatoriamente por todo el canvas
for (var i = 0; i < 10000; i++) {
var x = Math.floor(Math.random() * canvas.width);
var y = Math.floor(Math.random() * canvas.height);
ctx.globalAlpha = Math.random();
ctx.fillRect(x, y, 1, 1);
}
}
}
La imagen cambiará cada vez que actualice la página. Para recuperar la imagen utilice toDataURL
var url = canvas.toDataURL();
Nota: Firefox nos permite abrir y guardar la imagen generada haciendo clic con el botón derecho del ratón, y escogiendo la opción deseada.