Canvas API

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

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

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 wird mit der Methode HTMLCanvasElement.getContext() der Kontext dieses Elements abgerufen – das Objekt, auf das die Zeichnung gerendert wird.

Das eigentliche Zeichnen erfolgt mit der Schnittstelle CanvasRenderingContext2D. Die Eigenschaft fillStyle färbt das Rechteck grün. Die Methode fillRect() platziert die obere linke Ecke bei (10, 10) und gibt ihm eine Größe von 150 Einheiten Breite und 100 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 mit WebGLRenderingContext verwandten Schnittstellen werden unter WebGL referenziert.

Hinweis: OffscreenCanvas ist auch in Web-Workern 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 erweiterten Funktionen behandelt.

HTML5 Canvas Deep Dive

Eine praktische, ausführliche Einführung in die Canvas API und WebGL.

Canvas Handbook

Ein nützliches Nachschlagewerk für die Canvas API.

Manipulieren von Videos mit Canvas

Kombination von <video> und <canvas> zur Manipulation von Videodaten in Echtzeit.

Bibliotheken

Die Canvas API ist äußerst mächtig, jedoch nicht immer einfach zu nutzen. 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 Erfahrungen erleichtert.
  • Fabric.js ist eine Open-Source-Canvas-Bibliothek mit SVG-Parsing-Fähigkeiten.
  • heatmap.js ist eine Open-Source-Bibliothek zur Erstellung von Canvas-basierten Daten-Heatmaps.
  • JavaScript InfoVis Toolkit erstellt interaktive Datenvisualisierungen.
  • Konva.js ist eine 2D-Canvas-Bibliothek für Desktop- und Mobilanwendungen.
  • p5.js bietet eine vollständige Palette an Canvas-Zeichenfunktionen für Künstler, Designer, Pädagogen und Anfänger.
  • Paper.js ist ein Open-Source-Framework zur Vektorgrafikprogrammierung, das auf dem HTML-Canvas läuft.
  • Phaser ist ein schnelles, kostenloses und unterhaltsames Open-Source-Framework für Canvas- und WebGL-basierte Browserspiele.
  • Pts.js ist eine Bibliothek für kreatives Codieren und Visualisierungen in Canvas und SVG.
  • Rekapi ist eine Animations-Keyframing-API für Canvas.
  • Scrawl-canvas ist eine Open-Source-JavaScript-Bibliothek zum Erstellen und Manipulieren von 2D-Canvas-Elementen.
  • Das ZIM Framework bietet Annehmlichkeiten, Komponenten und Steuerungen für kreatives Codieren auf dem Canvas – beinhaltet Barrierefreiheit und hunderte von bunten Tutorials.
  • Sprig ist eine anfängerfreundliche, Open-Source, kachelbasierte Spieleentwicklungsbibliothek, die Canvas verwendet.

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

Spezifikationen

Specification
HTML Standard
# the-canvas-element

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch