Testo e immagini su canvas
Visualizzare stringhe di testo e disegnare immagini sul canvas
Testo e immagini su canvas è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.
Disegnare testo
Imposti il font: ctx.font = "bold 24px sans-serif". Disegni: ctx.fillText("Hello", x, y) o ctx.strokeText("Hello", x, y). La coordinata y corrisponde alla linea di base del testo: aggiunga l'altezza delle ascendenti al di sopra di essa per posizionare correttamente il testo all'interno di un riquadro.
Allineamento del testo
ctx.textAlign controlla l'allineamento orizzontale: "left" (predefinito), "center", "right". ctx.textBaseline controlla l'allineamento verticale rispetto a y: "top", "middle", "alphabetic" (predefinito), "bottom". Per centrare il testo, imposti entrambi su "center" e "middle".
measureText per il layout
ctx.measureText("text") restituisce un oggetto TextMetrics con la larghezza e le metriche del font. Lo utilizzi per calcolare dinamicamente le posizioni del testo: per centrarlo in un riquadro, mandarlo a capo a una larghezza massima o allineare a destra le etichette accanto ai punti dati.
A capo del testo
Canvas non dispone di una funzione integrata per mandare a capo il testo. La implementi misurando la larghezza delle parole e accumulandole finché non si supera maxWidth, quindi iniziando una nuova riga a intervalli di lineHeight. Questa è una funzione di utilità comune nelle librerie di rendering per canvas.
Disegnare immagini
ctx.drawImage(image, dx, dy) disegna un HTMLImageElement, HTMLCanvasElement o HTMLVideoElement in corrispondenza di (dx, dy). Carichi prima l'immagine e disegni nel relativo gestore onload, per assicurarsi che i pixel siano disponibili prima del disegno.
const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "photo.jpg";Ridimensionare immagini
ctx.drawImage(image, dx, dy, dw, dh) ridimensiona l'immagine per adattarla a dw x dh. Il mantenimento delle proporzioni non è automatico: calcoli manualmente le dimensioni. Per mantenere le proporzioni: dw = img.width * scale; dh = img.height * scale.
Ritagliare immagini
La versione di drawImage con nove argomenti: ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh). Il rettangolo sorgente (sx, sy, sw, sh) ritaglia una porzione dell'immagine; il rettangolo di destinazione (dx, dy, dw, dh) posiziona e ridimensiona il ritaglio sul canvas.
Smoothing delle immagini
ctx.imageSmoothingEnabled = false disabilita l'interpolazione bilineare durante il ridimensionamento delle immagini. Lo utilizzi per la pixel art, quando si desidera un ridimensionamento nitido e senza smoothing. Lo lasci abilitato (impostazione predefinita) per le immagini fotografiche, per le quali un ridimensionamento uniforme produce risultati migliori.
Canvas come sorgente di immagini
Passi un canvas come sorgente a drawImage per eseguire il rendering di un canvas su un altro. Questo consente il rendering fuori schermo: disegni composizioni complesse su un canvas nascosto, quindi disegni quel canvas su quello visibile con una sola operazione a ogni fotogramma.
globalAlpha e composizione
ctx.globalAlpha (da 0 a 1) applica una trasparenza uniforme a tutti i disegni successivi. ctx.globalCompositeOperation controlla il modo in cui i nuovi disegni vengono fusi con i pixel esistenti: "source-over" (predefinito), "multiply", "screen", "destination-out" (cancellazione) e altri.
toDataURL per l'esportazione
canvas.toDataURL("image/png") esporta il canvas come data URL PNG in base64. Lo utilizzi per un download avviato dall'utente: crei un'ancora, imposti href sul data URL e l'attributo download su un nome file, quindi simuli un clic a livello programmatico.
Verifica delle conoscenze
Su che cosa influisce ctx.textBaseline = "middle" quando si disegna il testo?
Riepilogo
Il rendering del testo su Canvas utilizza ctx.font, fillText/strokeText, textAlign e textBaseline per il posizionamento, e measureText per i calcoli di layout. Il disegno delle immagini tramite drawImage supporta il ridimensionamento e il ritaglio; globalAlpha e globalCompositeOperation controllano la fusione. toDataURL esporta il canvas per il download o per un ulteriore utilizzo.
Domande Frequenti
La lezione «Testo e immagini su canvas» è gratuita?
Sì — il testo completo di «Testo e immagini su canvas» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.
Cosa imparerò in «Testo e immagini su canvas»?
Visualizzare stringhe di testo e disegnare immagini sul canvas Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare HTML Academy?
Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Testo e immagini su canvas»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione HTML Academy?
Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Configurare canvas e il contesto 2D
- Disegnare rettangoli e tracciati
- Testo e immagini su canvas
- Animazioni con requestAnimationFrame