API de Canvas
- Página anterior Estilo HTML
- Página siguiente Consola de API
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 posición de la página HTML utilizando 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, necesitas crear el objeto de contexto 2D:
const ctx = myCanvas.getContext("2d");
Notas
El elemento HTML <canvas> no tiene funciones de dibujo.
Debes 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, puedes dibujar en el lienzo.
El método fillRect() de abajo dibuja un rectángulo negro, cuyo ángulo superior izquierdo está ubicado 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);
Usar 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 puedes 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 un camino - beginPath()
- Moverse a un punto - moveTo()
- Dibujar en el camino - lineTo()
- Dibujar un camino - 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, degradado o patrón utilizado para rellenar el dibujo. |
strokeStyle | Establecer o devolver el color, degradado o patrón utilizado para los trazos. |
shadowColor | Establecer o devolver el color utilizado para la sombra. |
shadowBlur | Establecer o devolver el nivel de desdibujado de la sombra. |
shadowOffsetX | Establecer o devolver la distancia horizontal del sombreado al forma. |
shadowOffsetY | Establecer o devolver la distancia vertical del sombreado al 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 posiciones de parada en el objeto de gradiente. |
Estilo de línea
Atributos | Descripción |
---|---|
lineCap | Establecer o devolver el estilo de cubierta del 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 ángulo de bisel. |
Rectángulo
Método | Descripción |
---|---|
rect() | Crear un rectángulo. |
fillRect() | Dibujar un rectángulo 'rellenado'. |
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() | Dibujar efectivamente la trayectoria definida. |
beginPath() | Comenzar una 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 regrese 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 de Bézier de segundo grado. |
bezierCurveTo() | Crear una curva de 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. |
Transformar
Método | Descripción |
---|---|
scale() | Aumentar o reducir el gráfico actual. |
rotate() | Girar el gráfico actual. |
translate() | Reasignar 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 modo de alineación actual del contenido del texto. |
textBaseline | Establece o devuelve la línea de base actual utilizada para dibujar texto. |
Método | Descripción |
---|---|
fillText() | Dibuja texto 'rellenado' 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, un lienzo o un 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 del 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 camino guardado anteriormente. |
createEvent() | |
getContext() | |
toDataURL() |
Atributos y eventos estándar
El objeto canvas admite tanto atributos estándar como eventosAtributosyEventos.
Páginas relacionadas
Tutorial HTML:Canvas HTML5
Tutorial de imágenes HTML:Tutorial de Canvas HTML
Manual de referencia HTML:Etiqueta <canvas> HTML
- Página anterior Estilo HTML
- Página siguiente Consola de API