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>
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);
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);
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);
Trayectoria
Un método común para dibujar en el lienzo es:
- Comenzar una trayectoria - beginPath()
- Moverse a un punto - moveTo()
- Dibujar en la trayectoria - lineTo()
- 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();
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