Tekst en afbeeldingen op canvas
Render tekst en teken afbeeldingen op het canvas
Tekst en afbeeldingen op canvas is een gratis HTML Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject HTML Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus HTML Academy bevat in totaal 4 lessen.
Tekst tekenen
Stel het lettertype in: ctx.font = "bold 24px sans-serif". Teken met ctx.fillText("Hello", x, y) of ctx.strokeText("Hello", x, y). De y-coördinaat is de tekstbasislijn — tel de hoogte van de stijgende letters erboven op om tekst correct binnen een begrenzingsvak te plaatsen.
Tekstuitlijning
ctx.textAlign bepaalt de horizontale uitlijning: "left" (standaard), "center", "right". ctx.textBaseline bepaalt de verticale uitlijning ten opzichte van y: "top", "middle", "alphabetic" (standaard), "bottom". Voor gecentreerde tekst stel je beide in op "center" en "middle".
measureText voor opmaak
ctx.measureText("text") retourneert een TextMetrics-object met de breedte en lettertypegegevens. Gebruik dit om tekstposities dynamisch te berekenen — bijvoorbeeld om tekst in een vak te centreren, tekst bij een maximale breedte terug te laten lopen of labels rechts uit te lijnen naast gegevenspunten.
Tekst laten teruglopen
Canvas heeft geen ingebouwde tekstterugloop. Implementeer dit door woordbreedtes te meten, deze op te tellen tot de maximale breedte wordt overschreden en dan op intervallen van lineHeight naar een nieuwe regel te gaan. Dit is een veelgebruikte hulpfunctie in bibliotheken voor canvasweergave.
Afbeeldingen tekenen
ctx.drawImage(image, dx, dy) tekent een HTMLImageElement, HTMLCanvasElement of HTMLVideoElement op (dx, dy). Laad de afbeelding eerst en teken in de onload-handler, zodat de pixels beschikbaar zijn voordat je tekent.
const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "photo.jpg";Afbeeldingen schalen
ctx.drawImage(image, dx, dy, dw, dh) schaalt de afbeelding zodat deze in dw x dh past. De beeldverhouding wordt niet automatisch behouden — bereken de afmetingen handmatig. Om de beeldverhouding te behouden: dw = img.width * scale; dh = img.height * scale.
Afbeeldingen bijsnijden
drawImage met negen argumenten: ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh). De bronrechthoek (sx, sy, sw, sh) snijdt een deel uit de afbeelding; de doelrechthoek (dx, dy, dw, dh) plaatst en schaalt dit uitgesneden deel op het canvas.
Afbeeldingen gladstrijken
ctx.imageSmoothingEnabled = false schakelt bilineaire interpolatie uit bij het schalen van afbeeldingen. Gebruik dit voor pixelkunst wanneer scherpe, niet-gladde schaling gewenst is. Laat het ingeschakeld (standaard) voor fotografische afbeeldingen, waarbij vloeiend schalen er beter uitziet.
Canvas als afbeeldingsbron
Geef een canvas als bron door aan drawImage — zo render je het ene canvas op het andere. Hiermee kun je buiten beeld renderen: teken complexe composities op een verborgen canvas en teken dat canvas vervolgens elke frame in één bewerking op het zichtbare canvas.
globalAlpha en compositing
ctx.globalAlpha (0 tot 1) past uniforme transparantie toe op alle daaropvolgende tekenbewerkingen. ctx.globalCompositeOperation bepaalt hoe nieuwe tekeningen met bestaande pixels worden samengevoegd: "source-over" (standaard), "multiply", "screen", "destination-out" (wissen) en meer.
toDataURL voor export
canvas.toDataURL("image/png") exporteert het canvas als een PNG-gegevens-URL in base64. Gebruik dit voor een door de gebruiker gestart downloaden: maak een anker-element, stel href in op de gegevens-URL en download in op een bestandsnaam en klik er vervolgens programmatisch op.
Kennistoets
Wat beïnvloedt ctx.textBaseline = "middle" bij het tekenen van tekst?
Samenvatting
Tekstweergave op Canvas gebruikt ctx.font, fillText/strokeText, textAlign en textBaseline voor positionering, en measureText voor opmaakberekeningen. Afbeeldingen tekenen via drawImage ondersteunt schalen en bijsnijden; globalAlpha en globalCompositeOperation bepalen hoe tekeningen worden samengevoegd. toDataURL exporteert het canvas om te downloaden of verder te gebruiken.
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “Tekst en afbeeldingen op canvas” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “Tekst en afbeeldingen op canvas”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus HTML Academy bevat in totaal 4 lessen.
Wat leer ik in “Tekst en afbeeldingen op canvas”?
Render tekst en teken afbeeldingen op het canvas Je oefent met HTML Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met HTML Academy te beginnen?
Ervaring vooraf is niet nodig. HTML Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Tekst en afbeeldingen op canvas”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over HTML Academy?
Ja. Elke les over HTML Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Canvas en de 2D-context instellen
- Rechthoeken en paden tekenen
- Tekst en afbeeldingen op canvas
- Animatie met requestAnimationFrame