Oggetto Canvas DOM HTML

L'elemento <canvas> definisce un'area bitmap nella pagina HTML.

L'API Canvas permette a JavaScript di disegnare grafici sulla lavagna.

L'API Canvas può disegnare forme, linee, curve, rettangoli, testo e immagini, nonché colori, rotazioni, trasparenze e altre operazioni sui pixel.

Aggiungi Canvas all'HTML

Puoi aggiungere l'elemento canvas in qualsiasi posizione della pagina HTML utilizzando il tag <canvas>:

Esempio

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

Prova personalmente

Come accedere all'elemento Canvas

Puoi accedere all'elemento <canvas> utilizzando il metodo HTML DOM getElementById():

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

Per disegnare sulla lavagna, devi creare l'oggetto contesto 2D:

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

Note

L'elemento HTML <canvas> non ha funzionalità di disegno.

Devi utilizzare JavaScript per disegnare qualsiasi grafico.

Il metodo getContext() restituisce un oggetto con strumenti di disegno (metodi).

Disegnare sulla lavagna

Dopo aver creato l'oggetto contesto 2D, puoi disegnare sulla lavagna.

Il metodo fillRect() di seguito disegna un rettangolo nero con l'angolo in alto a sinistra situato alla posizione 20,20. Il rettangolo ha una larghezza di 150 pixel e una altezza di 100 pixel:

Esempio

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

Prova personalmente

Utilizzando il colore

L'attributo fillStyle imposta il colore di riempimento dell'oggetto di disegno.

Esempio

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

Prova personalmente

Puoi anche creare un nuovo elemento <canvas> utilizzando il metodo document.createElement() e aggiungerlo alla pagina HTML esistente:

Esempio

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

Prova personalmente

Percorso

I metodi comuni per disegnare su una lavagna sono:

  1. Inizia un percorso - beginPath()
  2. Sposta a un punto - moveTo()
  3. Disegna nel percorso - lineTo()
  4. Disegna un percorso - stroke()

Esempio

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();

Prova personalmente

Colore, stile e ombra

Proprietà Descrizione
fillStyle Imposta o restituisce il colore, la gradazione o il motivo utilizzati per il riempimento del disegno.
strokeStyle Imposta o restituisce il colore, la gradazione o il motivo utilizzati per i tratti.
shadowColor Imposta o restituisce il colore utilizzato per l'ombra.
shadowBlur Imposta o restituisce il livello di sfocatura dell'ombra.
shadowOffsetX Imposta o restituisce la distanza orizzontale dell'ombra dal形状.
shadowOffsetY Imposta o restituisce la distanza verticale dell'ombra dal形状.
Metodo Descrizione
createLinearGradient() Crea un gradiente lineare (usato per il contenuto del canvas).
createPattern() Ripeti l'elemento specificato nella direzione specificata.
createRadialGradient() Crea un gradiente radiale/circolare (usato per il contenuto del canvas).
addColorStop() Definisce i colori e le posizioni di fermata dell'oggetto gradiente.

Stile della linea

Proprietà Descrizione
lineCap Imposta o restituisce lo stile della punta della linea.
lineJoin Imposta o restituisce il tipo di angolo creato quando due linee si intersecano.
lineWidth Imposta o restituisce la larghezza della linea corrente.
miterLimit Imposta o restituisce la lunghezza massima della sovrapposizione.

Rettangolo

Metodo Descrizione
rect() Crea un rettangolo.
fillRect() Disegna un rettangolo 'riempito'.
strokeRect() Disegna un rettangolo (senza riempimento).
clearRect() Cancella i pixel specificati all'interno del rettangolo dato.

Percorso

Metodo Descrizione
fill() Riempie la figura corrente (percorso).
stroke() Disegna effettivamente il percorso definito.
beginPath() Inizia un percorso o ripristina il percorso corrente.
moveTo() Sposta il percorso al punto specificato sulla superficie del canvas senza creare una linea.
closePath() Crea un percorso che ritorna al punto di partenza.
lineTo() Aggiungi un nuovo punto e crea una linea da quel punto al punto specificato più recente sulla superficie del canvas.
clip() Taglia una qualsiasi forma e dimensione di area dalla superficie originale del canvas.
quadraticCurveTo() Crea una curva Bezier di secondo ordine.
bezierCurveTo() Crea una curva Bezier di terzo ordine.
arc() Crea un arco/curva (usato per creare cerchi o parti di cerchi).
arcTo() Crea un arco/curva tra due tangenti.
isPointInPath() Restituisce true se il punto specificato si trova nel percorso corrente, altrimenti restituisce false.

Trasformazione

Metodo Descrizione
scale() Ingrandisce o riduce la figura corrente.
rotate() Ruota la figura corrente.
translate() Rimappa la posizione (0,0) sulla superficie del canvas.
transform() Sostituisci la matrice di trasformazione corrente del disegno.
setTransform() Ripristina la trasformazione corrente a matrice unitaria. Poi esegui transform().

Testo

Proprietà Descrizione
font Imposta o restituisce le proprietà di carattere correnti del contenuto del testo.
textAlign Imposta o restituisce il modo di allineamento corrente del contenuto del testo.
textBaseline Imposta o restituisce la linea di base corrente utilizzata per il disegno del testo.
Metodo Descrizione
fillText() Disegna testo 'riempito' sulla canvas.
strokeText() Disegna testo sulla canvas (senza riempimento).
measureText() Restituisce un oggetto che contiene la larghezza del testo specificato.

Disegno immagine

Metodo Descrizione
drawImage() Disegna un'immagine, una canvas o un video sulla canvas.

Operazioni sui pixel

Proprietà Descrizione
width Restituisce la larghezza dell'oggetto ImageData.
height Restituisce l'altezza dell'oggetto ImageData.
data Restituisce un oggetto che contiene i dati dell'immagine di un oggetto ImageData specificato.
Metodo Descrizione
createImageData() Crea un nuovo oggetto ImageData vuoto.
getImageData() Restituisce un oggetto ImageData che copia i dati dei pixel di un rettangolo specificato sulla canvas.
putImageData() Restituisce i dati dell'immagine (da un oggetto ImageData specificato) sulla canvas.

Composizione

Proprietà Descrizione
globalAlpha Imposta o restituisce il valore corrente di alpha o trasparenza del disegno.
globalCompositeOperation Imposta o restituisce come disegnare l'immagine nuova sull'immagine esistente.

Altro

Metodo Descrizione
save() Salva lo stato corrente del contesto.
restore() Restituisce lo stato e le proprietà del percorso salvato in precedenza.
createEvent()
getContext()
toDataURL()

Proprietà standard e eventi

L'oggetto canvas supporta contemporaneamente gli standardProprietàeEventi.

Pagine correlate

Guida HTML:Canvas HTML5

Guida HTML immagini:Guida al Canvas HTML

Manuale di riferimento HTML:Etichetta <canvas> HTML