API Canvas

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

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

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>

Provatelo 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 superficie, 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 superficie

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

Il metodo fillRect() di seguito disegna un rettangolo nero con l'angolo in alto a sinistra situato in 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);

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

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

Provatelo personalmente

Percorso

I metodi comuni per disegnare su una superficie sono:

  1. Iniziare un percorso - beginPath()
  2. Spostarsi a un punto - moveTo()
  3. Disegnare all'interno del percorso - lineTo()
  4. Disegnare 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();

Provatelo personalmente

Colore, stile e ombra

Proprietà Descrizione
fillStyle Impostare o restituire il colore, la gradazione o il disegno utilizzati per il riempimento del disegno.
strokeStyle Impostare o restituire il colore, la gradazione o il disegno utilizzati per il tratto.
shadowColor Impostare o restituire il colore utilizzato per l'ombra.
shadowBlur Impostare o restituire 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() Stabilisce i colori e le posizioni di arresto dell'oggetto gradiente.

Stile della linea

Proprietà Descrizione
lineCap Imposta o restituisce lo stile della testa 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 dell'assottigliamento.

Rettangolo

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

Percorso

Metodo Descrizione
fill() Riempie il grafico corrente (percorso).
stroke() Disegna effettivamente il percorso definito.
beginPath() Inizia il 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 dal punto alla posizione最后一个指定点最后一个指定点 sulla superficie del canvas.
clip() Taglia 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 il grafico corrente.
rotate() Ruota il grafico corrente.
translate() Rimappa la posizione (0,0) sulla superficie del canvas.
transform() Sostituisci la matrice di trasformazione corrente del disegno.
setTransform() Riporta 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 disegnare il testo.
Metodo Descrizione
fillText() Disegna testo 'riempito' sul canvas.
strokeText() Disegna testo sul canvas (senza riempimento).
measureText() Restituisce un oggetto che contiene la larghezza del testo specificato.

Disegno dell'immagine

Metodo Descrizione
drawImage() Disegna un'immagine, un canvas o un video sul 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 sul canvas.
putImageData() Restituisce i dati dell'immagine (da un oggetto ImageData specificato) sulla superficie del 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à e eventi standard

L'oggetto canvas supporta contemporaneamente gli standardProprietàeEventi.

Pagine correlate

Tutorial HTML:Canvas HTML5

Tutorial di immagini HTML:Tutorial del Canvas HTML

Manuale di riferimento HTML:Etichetta <canvas> HTML