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>
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);
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);
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);
Percorso
I metodi comuni per disegnare su una lavagna sono:
- Inizia un percorso - beginPath()
- Sposta a un punto - moveTo()
- Disegna nel percorso - lineTo()
- 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();
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