W3docs

Riferimento Canvas

L'elemento HTML5 <canvas> serve per disegnare grafici tramite script (solitamente JavaScript). Scopri proprietà e metodi per disegnare sul canvas.

L'elemento HTML5 <canvas> viene utilizzato per disegnare grafici tramite scripting (solitamente JavaScript). Di per sé, l'elemento <canvas> è solo un contenitore vuoto — si disegna al suo interno tramite uno script.

Per ottenere qualcosa con cui disegnare, si chiama il metodo getContext('2d') dell'elemento. Questo restituisce un oggetto CanvasRenderingContext2D:

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d'); // a CanvasRenderingContext2D
ctx.fillStyle = 'green';
ctx.fillRect(10, 10, 100, 80);

Quasi ogni proprietà e metodo in questa pagina appartiene a quell'oggetto di contesto 2D (ctx nell'esempio), non all'elemento <canvas>. Le due eccezioni sono getContext() e toDataURL(), che appartengono all'elemento <canvas> stesso, e le proprietà width/height/data nella sezione Manipolazione dei pixel, che appartengono agli oggetti ImageData. Questi sono raggruppati nelle rispettive sezioni di seguito.

Per tutorial passo dopo passo, vedi Introduzione a Canvas, disegnare forme, coordinate, testo e gradienti.

Colori, Stili e Ombre

ProprietàDescrizione
fillStyleImposta o restituisce il colore, gradiente o pattern usato per riempire le forme.
strokeStyleImposta o restituisce il colore, gradiente o pattern usato per le linee attorno alle forme.
shadowColorImposta o restituisce il colore delle ombre.
shadowBlurImposta o restituisce il livello di sfocatura delle ombre.
shadowOffsetXImposta o restituisce lo scostamento x dell'ombra.
shadowOffsetYImposta o restituisce lo scostamento y dell'ombra.
MetodoDescrizione
createLinearGradient()Crea un gradiente lineare da usare sul contenuto del canvas.
createPattern()Ripete un determinato elemento nella direzione specificata.
createRadialGradient()Crea un gradiente circolare/radiale da usare sul contenuto del canvas.
addColorStop()Definisce i colori e le posizioni di interruzione nell'oggetto gradiente.

Vedi il tutorial Gradienti Canvas per esempi pratici.

Stili delle Linee

ProprietàDescrizione
lineCapImposta o restituisce lo stile delle estremità della linea.
lineJoinImposta o restituisce il tipo di angoli disegnati.
lineWidthImposta o restituisce la larghezza della linea corrente.
miterLimitImposta o restituisce la lunghezza massima del miter.
lineDashOffsetImposta o restituisce lo scostamento per i pattern di linee tratteggiate.
MetodoDescrizione
getLineDash()Restituisce il pattern di tratteggio corrente come array di numeri.
setLineDash()Imposta il pattern di tratteggio da un array di numeri (es. [5, 3]).

Rettangoli

MetodoDescrizione
rect()Crea rettangoli.
fillRect()Disegna rettangoli pieni.
strokeRect()Disegna i contorni di un rettangolo.
clearRect()Cancella i pixel specificati all'interno di un determinato rettangolo.

Percorsi

MetodoDescrizione
fill()Riempie il/i sotto-percorso/i corrente/i con il fillStyle corrente.
stroke()Traccia il/i sotto-percorso/i corrente/i con il strokeStyle corrente.
beginPath()Inizia un nuovo percorso o reimposta il percorso corrente.
moveTo()Sposta il percorso verso il punto definito nel canvas senza tracciare una linea.
closePath()Aggiunge un percorso dal punto corrente al punto iniziale.
lineTo()Aggiunge una linea al sotto-percorso corrente.
clip()Crea una regione di ritaglio dal percorso corrente.
quadraticCurveTo()Aggiunge una curva di Bézier quadratica.
bezierCurveTo()Aggiunge una curva di Bézier cubica.
arc()Aggiunge un arco/curva per creare cerchi o parti di cerchi.
arcTo()Aggiunge un arco/curva tra due tangenti.
ellipse()Aggiunge un arco ellittico al percorso.
isPointInPath()Indica se il punto specificato si trova nel percorso corrente o meno.

Trasformazioni

MetodoDescrizione
scale()Ingrandisce o riduce il disegno corrente.
rotate()Ruota il disegno corrente.
translate()Regola il sistema di coordinate del canvas.
transform()Applica una matrice di trasformazione al canvas.
setTransform()È simile a transform(). Può essere usata per distorcere, scalare e traslare il canvas.
resetTransform()Reimposta la trasformazione corrente alla matrice identità.

Vedi Coordinate Canvas per come la matrice di trasformazione mappa le posizioni di disegno sui pixel.

Testo

ProprietàDescrizione
fontImposta l'aspetto del testo disegnato sul canvas.
textAlignImposta l'allineamento del testo disegnato sul canvas.
textBaselineImposta l'allineamento verticale del testo disegnato sul canvas.
directionImposta o restituisce la direzione del testo (ltr, rtl o inherit).
MetodoDescrizione
fillText()Aggiunge testo al canvas.
strokeText()Aggiunge testo con solo il contorno al canvas.
measureText()Misura la larghezza del testo.

Vedi il tutorial Testo Canvas per esempi completi.

Disegno di Immagini

ProprietàDescrizione
imageSmoothingEnabledImposta o restituisce se le immagini scalate vengono rese sfumate (true) o pixelate (false).
MetodoDescrizione
drawImage()Disegna un'immagine, un video o un canvas sul canvas.

Manipolazione dei Pixel

Le proprietà seguenti appartengono all'oggetto ImageData restituito da createImageData() / getImageData(), non all'elemento <canvas> o al contesto.

Proprietà ImageDataDescrizione
widthRestituisce la larghezza in pixel di un oggetto ImageData.
heightRestituisce l'altezza in pixel di un oggetto ImageData.
dataRestituisce un Uint8ClampedArray contenente i dati pixel RGBA.
MetodoDescrizione
createImageData()Crea un nuovo oggetto ImageData.
getImageData()Restituisce un oggetto ImageData che copia i dati pixel del rettangolo specificato.
putImageData()Inserisce i dati immagine sul canvas dall'oggetto ImageData.

Compositing

ProprietàDescrizione
globalAlphaImposta o restituisce il valore alfa/trasparenza corrente.
globalCompositeOperationImposta o restituisce il tipo di operazione di compositing quando viene disegnata una nuova immagine.
filterImposta o restituisce un filtro CSS applicato al disegno (es. blur(4px), grayscale(1)).

Stato del Canvas

Questi metodi appartengono al contesto 2D e consentono di salvare e ripristinare l'intero stato di disegno (stili, trasformazioni, regione di ritaglio) come uno stack.

MetodoDescrizione
save()Inserisce lo stato corrente del contesto nello stack degli stati.
restore()Estrae lo stato salvato più di recente, ripristinando quegli stili e trasformazioni.

L'elemento <canvas>

I seguenti membri appartengono all'elemento <canvas> stesso, non al contesto 2D.

MembroDescrizione
getContext()Restituisce un contesto di disegno per il canvas — passare '2d' per un CanvasRenderingContext2D.
toDataURL()Restituisce un data URL (immagine base64) del contenuto del canvas, es. 'image/png'.

Esercitazione

Pratica
Cosa può fare il metodo getContext('2d') in HTML5 Canvas?
Cosa può fare il metodo getContext('2d') in HTML5 Canvas?
Was this page helpful?