Canvas HTML5

El elemento canvas se utiliza para dibujar gráficos en la página web.

¿Qué es Canvas?

El elemento canvas de HTML5 utiliza JavaScript para dibujar imágenes en la página web.

El lienzo es una región rectangular, donde puede controlar cada píxel.

Canvas tiene varios métodos de dibujo de rutas, rectángulos, círculos, caracteres y agregar imágenes.

Crear el elemento Canvas

Agregar el elemento canvas a la página HTML5.

Especificar el id, el ancho y la altura del elemento:

<canvas id="myCanvas" width="200" height="100"></canvas>

Dibujar con JavaScript

El elemento canvas en sí no tiene capacidad de dibujo. Todas las operaciones de dibujo deben realizarse internamente en JavaScript:

<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
</script>

JavaScript utiliza el id para encontrar el elemento canvas:

var c=document.getElementById("myCanvas");

Luego, cree el objeto contexto:

var cxt=c.getContext("2d");

El objeto getContext("2d") es un objeto integrado en HTML5, que posee varios métodos para dibujar rutas, rectángulos, círculos, caracteres y agregar imágenes.

Las siguientes dos líneas de código dibujan un rectángulo rojo:

cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75); 

El método fillStyle lo pinta en rojo, el método fillRect especifica la forma, posición y dimensiones.

Entender las coordenadas

El método fillRect de arriba tiene como parámetros (0,0,150,75).

Lo que significa: dibuje un rectángulo de 150x75 en el lienzo, comenzando en la esquina superior izquierda (0,0).

Como se muestra en la imagen siguiente, las coordenadas X e Y del lienzo se utilizan para ubicar el dibujo en el lienzo.

Ejemplo de Canvas: Entendiendo las coordenadas

Ejemplo: al posicionar el ratón sobre el rectángulo se pueden ver las coordenadas

Más ejemplos de Canvas

A continuación, más ejemplos de dibujo en el elemento canvas:

Ejemplo - Línea

Dibuje una línea especificando desde dónde comenzar y dónde finalizar:

Ejemplo de Canvas: Líneas

Código JavaScript:

<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.moveTo(10,10);
cxt.lineTo(150,50);
cxt.lineTo(10,50);
cxt.stroke();
</script>

Elemento de lienzo:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Su navegador no admite el elemento de lienzo.
</canvas>

Prueba por tu cuenta

Ejemplo - Círculo

Dibuje un círculo mediante la especificación de dimensiones, colores y posiciones:

Ejemplo de Canvas: Círculos

Código JavaScript:

<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath();
cxt.fill();
</script>

Elemento de lienzo:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Su navegador no admite el elemento de lienzo.
</canvas>

Prueba por tu cuenta

Ejemplo - Desvanecimiento

Utilice el color especificado para dibujar el fondo de desvanecimiento:

Ejemplo de Canvas: Degradados

Código JavaScript:

<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var grd=cxt.createLinearGradient(0,0,175,50);
grd.addColorStop(0,"#FF0000");
grd.addColorStop(1,"#00FF00");
cxt.fillStyle=grd;
cxt.fillRect(0,0,175,50);
</script>

Elemento de lienzo:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Su navegador no admite el elemento de lienzo.
</canvas>

Prueba por tu cuenta

Ejemplo - Imagen

Coloca una imagen en el lienzo:

Ejemplo de Canvas: Imágenes

Código JavaScript:

<script>
window.onload = function() {
    var canvas = document.getElementById("myCanvas");
    var ctx = canvas.getContext("2d");
    var img = document.getElementById("scream");
   ctx.drawImage(img, 10, 10);
};
</script>

Elemento de lienzo:

<canvas id="myCanvas" width="244" height="182" style="border:1px solid #d3d3d3;">
Su navegador no admite la etiqueta de lienzo HTML5.
</canvas>

Prueba por tu cuenta

Tutoriales de HTML Canvas

Para aprender más sobre el lienzo, visite nuestro Tutoriales de HTML Canvas.

Páginas relacionadas

Manual de referencia:Etiqueta <canvas> HTML 5

Manual de referencia:Objeto Canvas del DOM HTML