Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Canvas API

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die Canvas API bietet eine Möglichkeit, Grafiken über JavaScript und das HTML-Element <canvas> zu zeichnen. Unter anderem kann sie für Animationen, Spielgrafiken, Datenvisualisierung, Bildbearbeitung und Videobearbeitung in Echtzeit verwendet werden.

Die Canvas API konzentriert sich weitgehend auf 2D-Grafiken. Die WebGL API, die ebenfalls das <canvas>-Element verwendet, zeichnet hardwarebeschleunigte 2D- und 3D-Grafiken.

Bedenken hinsichtlich der Barrierefreiheit

Das <canvas>-Element ist lediglich eine Bitmap und liefert keine Informationen über gezeichnete Objekte. Auf einem Canvas geschriebener Text kann für Benutzer, die auf Bildschirmvergrößerung angewiesen sind, zu Problemen mit der Lesbarkeit führen. Die Pixel innerhalb eines Canvas-Elements werden nicht skaliert und können bei Vergrößerung unscharf werden. Das liegt daran, dass sie keine Vektoren, sondern buchstabenförmige Ansammlungen von Pixeln sind. Beim Hineinzoomen werden die Pixel größer.

Canvas-Inhalte werden nicht wie semantisches HTML für Hilfstechnologien verfügbar gemacht. Im Allgemeinen sollten Sie Canvases wie Bilder verwenden und vermeiden, sie zum Rendern bedeutender Inhalte ohne zugängliches unterstützendes Markup einzusetzen.

Grundlegendes Beispiel

Dieses einfache Beispiel zeichnet ein grünes Rechteck auf ein Canvas.

HTML

html
<canvas id="canvas"></canvas>

JavaScript

Die Methode Document.getElementById() ruft eine Referenz auf das HTML-Element <canvas> ab. Anschließend ruft die Methode HTMLCanvasElement.getContext() den Kontext dieses Elements ab – das Objekt, auf dem die Zeichnung gerendert wird.

Das eigentliche Zeichnen erfolgt über die Schnittstelle CanvasRenderingContext2D. Die Eigenschaft fillStyle färbt das Rechteck grün. Die Methode fillRect() platziert dessen linke obere Ecke bei (10, 10) und gibt ihm eine Größe von 150 Einheiten Breite und 100 Einheiten Höhe.

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

ctx.fillStyle = "green";
ctx.fillRect(10, 10, 150, 100);

Ergebnis

Referenz

Hinweis: Die Schnittstellen im Zusammenhang mit WebGLRenderingContext werden unter WebGL behandelt.

Hinweis: OffscreenCanvas ist auch in Web Workers verfügbar.

CanvasCaptureMediaStreamTrack ist eine verwandte Schnittstelle.

Leitfäden und Tutorials

Canvas-Tutorial

Ein umfassendes Tutorial, das sowohl die grundlegende Verwendung der Canvas API als auch ihre erweiterten Funktionen behandelt.

HTML5 Canvas Deep Dive

Eine praxisnahe, buchlange Einführung in die Canvas API und WebGL.

Canvas Handbook

Eine praktische Referenz für die Canvas API.

Videodaten mit Canvas bearbeiten

Kombination von <video> und <canvas>, um Videodaten in Echtzeit zu bearbeiten.

Bibliotheken

Die Canvas API ist äußerst leistungsfähig, aber nicht immer einfach zu verwenden. Die unten aufgeführten Bibliotheken können die Erstellung von Canvas-basierten Projekten schneller und einfacher machen.

  • EaselJS ist eine Open-Source-Canvas-Bibliothek, die das Erstellen von Spielen, generativer Kunst und anderen stark grafischen Erlebnissen vereinfacht.
  • Fabric.js ist eine Open-Source-Canvas-Bibliothek mit SVG-Parsing-Funktionen.
  • heatmap.js ist eine Open-Source-Bibliothek zum Erstellen Canvas-basierter Daten-Heatmaps.
  • JavaScript InfoVis Toolkit erstellt interaktive Datenvisualisierungen.
  • Konva.js ist eine 2D-Canvas-Bibliothek für Desktop- und mobile Anwendungen.
  • p5.js bietet einen vollständigen Satz von Canvas-Zeichenfunktionen für Künstler, Designer, Lehrkräfte und Einsteiger.
  • Phaser ist ein schnelles, kostenloses und unterhaltsames Open-Source-Framework für Canvas- und WebGL-gestützte Browser-Spiele.
  • Pts.js ist eine Bibliothek für kreatives Programmieren und Visualisierung in Canvas und SVG.
  • Rekapi ist eine API für Animations-Keyframing für Canvas.
  • Scrawl-canvas ist eine Open-Source-JavaScript-Bibliothek zum Erstellen und Bearbeiten von 2D-Canvas-Elementen.
  • Das ZIM-Framework bietet Hilfsmittel, Komponenten und Steuerelemente für kreatives Programmieren auf dem Canvas – einschließlich Barrierefreiheit und Hunderten farbenfroher Tutorials.
  • Sprig ist eine einsteigerfreundliche, Open-Source-, kachelbasierte Bibliothek zur Spieleentwicklung, die Canvas verwendet.

Hinweis: Informationen zu 2D- und 3D-Bibliotheken, die WebGL verwenden, finden Sie in der WebGL API.

Spezifikationen

Spezifikation
HTML
# the-canvas-element

Browser-Kompatibilität

Siehe auch