close

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 zur Erstellung von Grafiken mittels JavaScript und dem HTML <canvas>-Element. Sie kann unter anderem für Animationen, Spielgrafiken, Datenvisualisierungen, Fotomanipulation und Echtzeit-Videobearbeitung verwendet werden.

Die Canvas-API konzentriert sich hauptsächlich auf 2D-Grafiken. Die WebGL-API, die ebenfalls das <canvas>-Element nutzt, ermöglicht die Erstellung von hardwarebeschleunigten 2D- und 3D-Grafiken.

Barrierefreiheitsbedenken

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

Der Canvas-Inhalt wird im Gegensatz zu semantischem HTML nicht an Barrierefreiheitswerkzeuge übermittelt. Generell sollten Sie Canvas wie Bilder verwenden und es vermeiden, bedeutenden Inhalt ohne zugängliches Hintergrund-Markup zu rendern.

Einfaches Beispiel

Dieses einfache Beispiel zeichnet ein grünes Rechteck auf eine Leinwand.

HTML

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

JavaScript

Die Methode Document.getElementById() erhält eine Referenz zum HTML-<canvas>-Element. Anschließend bekommt die Methode HTMLCanvasElement.getContext() den Kontext dieses Elements—das Objekt, auf dem die Zeichnung gerendert wird.

Das eigentliche Zeichnen erfolgt mit der Schnittstelle CanvasRenderingContext2D. Die Eigenschaft fillStyle macht das Rechteck grün. Die Methode fillRect() platziert die obere linke Ecke bei (10, 10) und gibt ihr 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 sind unter WebGL referenziert.

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 Nutzung der Canvas-API als auch ihre fortgeschrittenen Funktionen abdeckt.

HTML5 Canvas Deep Dive

Ein praxisnahes, buchlanges Einführung in die Canvas-API und WebGL.

Canvas-Handbuch

Ein praktisches Nachschlagewerk für die Canvas-API.

Manipulation von Videos mit Canvas

Kombination von <video> und <canvas> zur Echtzeitbearbeitung von Videodaten.

Bibliotheken

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

  • EaselJS ist eine Open-Source-Canvas-Bibliothek, die es einfach macht, Spiele, generative Kunst und andere stark grafische Erlebnisse zu erstellen.
  • Fabric.js ist eine Open-Source-Canvas-Bibliothek mit SVG-Parsing-Funktionen.
  • heatmap.js ist eine Open-Source-Bibliothek zur Erstellung von datenbasierten Heatmaps in Canvas.
  • 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 Zeichenfunktionen für Künstler, Designer, Pädagogen und Anfänger.
  • Phaser ist ein schnelles, kostenloses und unterhaltsames Open-Source-Framework für Canvas- und WebGL-basierte Browser-Spiele.
  • Pts.js ist eine Bibliothek für kreatives Programmieren und Visualisierung in Canvas und SVG.
  • Rekapi ist eine Animations-Keyframing-API für Canvas.
  • Scrawl-canvas ist eine Open-Source-JavaScript-Bibliothek zur Erstellung und Manipulation von 2D-Canvas-Elementen.
  • Das ZIM-Framework bietet Annehmlichkeiten, Komponenten und Steuerungen für kreatives Programmieren auf der Canvas — umfasst Barrierefreiheit und Hunderte von bunten Tutorials.
  • Sprig ist eine einsteigerfreundliche, Open-Source, kachelbasierte Spieleentwicklungsbibliothek, die Canvas verwendet.

Hinweis: Sehen Sie sich die WebGL-API für 2D- und 3D-Bibliotheken an, die WebGL nutzen.

Spezifikationen

Spezifikation
HTML
# the-canvas-element

Browser-Kompatibilität

Siehe auch