0Pricing
HTML Academy · Lektion

Text und Bilder auf Canvas

Rendern Sie Textzeichenfolgen und zeichnen Sie Bilder auf das Canvas

Text und Bilder auf Canvas ist eine kostenlose HTML Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des HTML Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Text zeichnen

Setzen Sie die Schriftart: ctx.font = "bold 24px sans-serif". Zeichnen Sie: ctx.fillText("Hello", x, y) oder ctx.strokeText("Hello", x, y). Die y-Koordinate ist die Textgrundlinie – addieren Sie die Höhe der Oberlängen darüber, um Text innerhalb einer Begrenzungsbox korrekt zu positionieren.

Textausrichtung

ctx.textAlign steuert die horizontale Ausrichtung: "left" (Standard), "center", "right". ctx.textBaseline steuert die vertikale Ausrichtung relativ zu y: "top", "middle", "alphabetic" (Standard), "bottom". Für zentrierten Text setzen Sie beide Werte auf "center" und "middle".

measureText für das Layout

ctx.measureText("text") gibt ein TextMetrics-Objekt mit Breite und Schriftmetriken zurück. Verwenden Sie es, um Textpositionen dynamisch zu berechnen – etwa zum Zentrieren von Text in einer Box, zum Umbrechen von Text bei einer maximalen Breite oder zum rechtsbündigen Ausrichten von Beschriftungen neben Datenpunkten.

Text umbrechen

Canvas bietet keine integrierte Funktion zum Umbrechen von Text. Implementieren Sie sie: Messen Sie die Breiten der Wörter, addieren Sie sie, bis die maximale Breite überschritten wird, und beginnen Sie dann in Abständen von lineHeight eine neue Zeile. Dies ist eine häufig verwendete Hilfsfunktion in Canvas-Rendering-Bibliotheken.

Bilder zeichnen

ctx.drawImage(image, dx, dy) zeichnet ein HTMLImageElement, HTMLCanvasElement oder HTMLVideoElement an der Position (dx, dy). Laden Sie das Bild zuerst und zeichnen Sie es in seinem onload-Handler, damit die Pixel vor dem Zeichnen verfügbar sind.

const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "photo.jpg";

Bilder skalieren

ctx.drawImage(image, dx, dy, dw, dh) skaliert das Bild so, dass es in dw x dh passt. Das Seitenverhältnis wird nicht automatisch beibehalten – berechnen Sie die Abmessungen manuell. Um das Seitenverhältnis beizubehalten: dw = img.width * scale; dh = img.height * scale.

Bilder zuschneiden

drawImage mit neun Argumenten: ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh). Das Quellrechteck (sx, sy, sw, sh) schneidet einen Bereich aus dem Bild aus; das Zielrechteck (dx, dy, dw, dh) platziert und skaliert den Ausschnitt auf dem Canvas.

Bildglättung

ctx.imageSmoothingEnabled = false deaktiviert die bilineare Interpolation beim Skalieren von Bildern. Verwenden Sie dies für Pixelgrafiken, bei denen eine scharfe, nicht geglättete Skalierung gewünscht ist. Lassen Sie die Funktion für Fotos aktiviert (Standard), da dort eine weiche Skalierung besser aussieht.

Canvas als Bildquelle

Übergeben Sie ein Canvas als Quelle an drawImage, um ein Canvas auf ein anderes zu rendern. Dies ermöglicht Offscreen-Rendering: Zeichnen Sie komplexe Kompositionen auf ein verborgenes Canvas und zeichnen Sie dieses anschließend in jedem Frame mit einem einzigen Vorgang auf das sichtbare Canvas.

globalAlpha und Compositing

ctx.globalAlpha (0 bis 1) wendet eine einheitliche Transparenz auf alle nachfolgenden Zeichenoperationen an. ctx.globalCompositeOperation steuert, wie neue Zeichnungen mit vorhandenen Pixeln verrechnet werden: "source-over" (Standard), "multiply", "screen", "destination-out" (Löschen) und weitere.

toDataURL zum Exportieren

canvas.toDataURL("image/png") exportiert das Canvas als Base64-PNG-Daten-URL. Verwenden Sie dies für einen vom Benutzer initiierten Download: Erstellen Sie einen Anker, setzen Sie href auf die Daten-URL und das download-Attribut auf einen Dateinamen und lösen Sie anschließend programmgesteuert einen Klick aus.

Wissensprüfung

Was bewirkt ctx.textBaseline = "middle" beim Zeichnen von Text?

Zusammenfassung

Beim Rendern von Canvas-Text werden ctx.font, fillText/strokeText, textAlign und textBaseline zur Positionierung sowie measureText für Layoutberechnungen verwendet. Das Zeichnen von Bildern mit drawImage unterstützt Skalieren und Zuschneiden; globalAlpha und globalCompositeOperation steuern die Verrechnung. Mit toDataURL kann das Canvas für Downloads oder zur weiteren Verwendung exportiert werden.

Häufig gestellte Fragen

Ist die Lektion „Text und Bilder auf Canvas“ kostenlos?

Ja — der vollständige Text von „Text und Bilder auf Canvas“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des HTML Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Text und Bilder auf Canvas“?

Rendern Sie Textzeichenfolgen und zeichnen Sie Bilder auf das Canvas Du übst HTML Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um HTML Academy zu starten?

Keine Vorkenntnisse erforderlich. HTML Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Text und Bilder auf Canvas“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser HTML Academy-Lektion Code schreiben und ausführen?

Ja. Jede HTML Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Canvas und 2D-Kontext einrichten
  2. Rechtecke und Pfade zeichnen
  3. Text und Bilder auf Canvas
  4. Animation mit requestAnimationFrame
← Zurück zu HTML Academy