Objeto Canvas de DOM HTML

El elemento <canvas> define un área de mapa de bits en la página HTML.

El API de Canvas permite que JavaScript dibuje gráficos en el lienzo.

El API de Canvas puede dibujar formas, líneas, curvas, cuadrados, texto e imágenes, así como colores, rotación, transparencia y otras operaciones de píxeles.

Agregar Canvas a HTML

Puede agregar el elemento canvas en cualquier lugar de la página HTML usando la etiqueta <canvas>:

Ejemplo

<canvas id="myCanvas" width="300" height="150"></canvas>

Pruebe usted mismo

Cómo acceder al elemento Canvas

Puede usar el método HTML DOM getElementById() para acceder al elemento <canvas>:

const myCanvas = document.getElementById("myCanvas");

Para dibujar en el lienzo, debe crear el objeto de contexto 2D:

const ctx = myCanvas.getContext("2d");

Notas

El elemento HTML <canvas> no tiene funciones de dibujo.

Debe usar JavaScript para dibujar cualquier gráfico.

El método getContext() devuelve un objeto con herramientas de dibujo (métodos).

Dibujar en el lienzo

Después de crear el objeto de contexto 2D, puede comenzar a dibujar en el lienzo.

El método fillRect() a continuación dibuja un rectángulo negro con la esquina superior izquierda en la posición 20,20. El rectángulo tiene un ancho de 150 píxeles y una altura de 100 píxeles:

Ejemplo

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillRect(20, 20, 150, 100);

Pruebe usted mismo

Usando color

La propiedad fillStyle establece el color de relleno del objeto de dibujo:

Ejemplo

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Pruebe usted mismo

También puede usar el método document.createElement() para crear un nuevo elemento <canvas> y agregarlo a la página HTML existente:

Ejemplo

const myCanvas = document.createElement("canvas");
document.body.appendChild(myCanvas);
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Pruebe usted mismo

Trayectoria

Un método común para dibujar en el lienzo es:

  1. Comenzar una trayectoria - beginPath()
  2. Moverse a un punto - moveTo()
  3. Dibujar en la trayectoria - lineTo()
  4. Dibujar una trayectoria - stroke()

Ejemplo

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(20, 100);
ctx.lineTo(70, 100);
ctx.stroke();

Pruebe usted mismo

Color, estilo y sombra

Atributos Descripción
fillStyle Establecer o devolver el color, gradiente o patrón utilizado para rellenar el dibujo.
strokeStyle Establecer o devolver el color, gradiente o patrón utilizado para las trazas.
shadowColor Establecer o devolver el color utilizado para la sombra.
shadowBlur Establecer o devolver el nivel de desvanecimiento de la sombra.
shadowOffsetX Establecer o devolver la distancia horizontal desde la sombra hasta la forma.
shadowOffsetY Establecer o devolver la distancia vertical desde la sombra hasta la forma.
Método Descripción
createLinearGradient() Crear un gradiente lineal (para el contenido del lienzo).
createPattern() Repetir el elemento especificado en la dirección especificada.
createRadialGradient() Crear un gradiente radial/circular (para el contenido del lienzo).
addColorStop() Especificar los colores y las posiciones de parada en el objeto degradado.

Estilo de línea

Atributos Descripción
lineCap Establecer o devolver el estilo de extremo de la línea.
lineJoin Establecer o devolver el tipo de ángulo creado al intersectar dos líneas.
lineWidth Establecer o devolver el ancho de línea actual.
miterLimit Establecer o devolver la longitud máxima del bisel.

Rectángulo

Método Descripción
rect() Crear un rectángulo.
fillRect() Dibujar un rectángulo 'relleno'.
strokeRect() Dibujar un rectángulo (sin relleno).
clearRect() Borrar los píxeles especificados dentro del rectángulo dado.

Trayectoria

Método Descripción
fill() Rellenar el gráfico actual (trayectoria).
stroke() De hecho, dibujar la trayectoria que ha definido.
beginPath() Comenzar la trayectoria o restablecer la trayectoria actual.
moveTo() Mover la trayectoria al punto especificado en el lienzo sin crear una línea.
closePath() Crear una trayectoria que vuelve al punto de partida desde el punto actual.
lineTo() Agregar un nuevo punto y crear una línea desde ese punto hasta el último punto especificado en el lienzo.
clip() Recortar una región de cualquier forma y tamaño del lienzo original.
quadraticCurveTo() Crear una curva bézier de segundo grado.
bezierCurveTo() Crear una curva bézier de tercer grado.
arc() Crear un arco/curva (usado para crear un círculo o parte de él).
arcTo() Crear un arco/curva entre dos tangentes.
isPointInPath() Devuelve true si el punto especificado está en la trayectoria actual, de lo contrario devuelve false.

Transformación

Método Descripción
scale() Aumentar o reducir el gráfico actual.
rotate() Girar el gráfico actual.
translate() Remapear la posición (0,0) en el lienzo.
transform() Reemplazar la matriz de transformación actual de la pintura.
setTransform() Restablecer la transformación actual a la matriz de unidad. Luego ejecutar transform().

Texto

Atributos Descripción
font Establecer o devolver las propiedades de fuente del contenido del texto actual.
textAlign Establecer o devolver el alineamiento actual del contenido del texto.
textBaseline Establece o devuelve la línea base actual utilizada para dibujar texto.
Método Descripción
fillText() Dibuja texto 'relleno' en el lienzo.
strokeText() Dibuja texto en el lienzo (sin relleno).
measureText() Devuelve un objeto que contiene la anchura del texto especificado.

Dibujo de imagen

Método Descripción
drawImage() Dibuja una imagen, lienzo o video en el lienzo.

Operaciones de píxeles

Atributos Descripción
width Devuelve el ancho del objeto ImageData.
height Devuelve la altura del objeto ImageData.
data Devuelve un objeto que contiene los datos de la imagen del objeto ImageData especificado.
Método Descripción
createImageData() Crea un nuevo objeto ImageData en blanco.
getImageData() Devuelve un objeto ImageData que copia los datos de píxeles de un rectángulo especificado en el lienzo.
putImageData() Coloca los datos de la imagen (provenientes del objeto ImageData especificado) de vuelta en el lienzo.

Composición

Atributos Descripción
globalAlpha Establece o devuelve el valor actual de alpha o transparencia del dibujo.
globalCompositeOperation Establece o devuelve cómo se dibuja la nueva imagen sobre la imagen existente.

Otro

Método Descripción
save() Guarda el estado actual del contexto.
restore() Devuelve el estado y las propiedades del estado de la ruta guardada anteriormente.
createEvent()
getContext()
toDataURL()

Atributos estándar y eventos

El objeto canvas admite tanto atributos estándar como eventosAtributosyEventos.

Páginas relacionadas

Tutoriales de HTML:Canvas HTML5

Tutoriales de imágenes HTML:Tutoriales de Canvas HTML

Manual de referencia de HTML:Etiqueta <canvas> de HTML