HTML Academy · Les

Tekst en afbeeldingen op canvas

Render tekst en teken afbeeldingen op het canvas

Les 3 van 413 stappen

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.

Gratis beginnen

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

  1. Canvas en de 2D-context instellen
  2. Rechthoeken en paden tekenen
  3. Tekst en afbeeldingen op canvas
  4. Animatie met requestAnimationFrame
← Terug naar HTML Academy