HTML DOM Canvas object

Het <canvas>-element definieert een bitmapgebied in een HTML-pagina.

De Canvas API staat JavaScript toe om grafieken op het canvas te tekenen.

De Canvas API kan vormen, lijnen, kurven, vakken, tekst en afbeeldingen tekenen, evenals kleuren, roteren, transparantie en andere pixeloperaties.

Voeg Canvas toe aan HTML

U kunt het <canvas>-tag gebruiken om een canvas-element toe te voegen aan elke locatie in een HTML-pagina:

Voorbeeld

<canvas id="myCanvas" width="300" height="150"></canvas>

Probeer het zelf

Hoe toegang te krijgen tot het Canvas-element

U kunt de HTML DOM-methode getElementById() gebruiken om toegang te krijgen tot het <canvas>-element:

const myCanvas = document.getElementById("myCanvas");

Om te tekenen op het canvas, moet u een 2D context object maken:

const ctx = myCanvas.getContext("2d");

Aantekening

Het HTML <canvas> element heeft zelf geen tekenfunctie.

U moet JavaScript gebruiken om enige vorm van grafiek te tekenen.

De getContext() methode retourneert een object met tekenhulpmiddelen (methoden).

Tekenen op het canvas

Na het maken van de 2D context object kunt u tekenen op het canvas.

De onderstaande fillRect() methode tekent een zwart rechthoekig vak, met de linkerbovenhoek op de positie 20,20. Het vak is 150 pixels breed en 100 pixels hoog:

Voorbeeld

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillRect(20, 20, 150, 100);

Probeer het zelf

Gebruik van kleur

De fillStyle-eigenschap stelt de kleur in van het tekenobject.

Voorbeeld

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Probeer het zelf

U kunt ook een nieuwe <canvas> element maken met de methode document.createElement() en dit element toevoegen aan de bestaande HTML-pagina:

Voorbeeld

const myCanvas = document.createElement("canvas");
document.body.appendChild(myCanvas);
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Probeer het zelf

Pad

Een van de meest voorkomende methoden om op het canvas te tekenen is:

  1. Beginnen van een pad - beginPath()
  2. Verplaatsen naar een punt - moveTo()
  3. Tekenen in het pad - lineTo()
  4. Tekenen van een pad - stroke()

Voorbeeld

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(20, 100);
ctx.lineTo(70, 100);
ctx.stroke();

Probeer het zelf

Kleuren, stijlen en schaduwen

Eigenschappen Beschrijving
fillStyle Instellen of retourneren van de kleur, het verloop of het patroon die wordt gebruikt voor het vullen van de tekening.
strokeStyle Instellen of retourneren van de kleur, het verloop of het patroon dat wordt gebruikt voor de lijntekening.
shadowColor Instellen of retourneren van de kleur die wordt gebruikt voor de schaduw.
shadowBlur Instellen of retourneren van het vaagheidsniveau van de schaduw.
shadowOffsetX Instellen of retourneren van de horizontale afstand van de schaduw naar de vorm.
shadowOffsetY Instellen of retourneren van de verticale afstand van de schaduw naar de vorm.
Methode Beschrijving
createLinearGradient() Maak een lineair gradiënt (gebruikt voor canvasinhoud).
createPattern() Herhalen van het gespecificeerde element in de opgegeven richting.
createRadialGradient() Maak een radiaal/cirkelgradiënt (gebruikt voor canvasinhoud).
addColorStop() Specificeer de kleur en de stoppositie in de gradientobject.

Lijnstijl

Eigenschappen Beschrijving
lineCap Instellen of retourneren van het stijltype van de lijnrand.
lineJoin Instellen of retourneren van het type hoek dat wordt gecreëerd wanneer twee lijnen kruisen.
lineWidth Instellen of retourneren van de huidige lijndikte.
miterLimit Instellen of retourneren van de maximale schuine lengte.

Rechthoek

Methode Beschrijving
rect() Maak een rechthoek.
fillRect() Teken een 'gevulde' rechthoek.
strokeRect() Teken een rechthoek (zonder vulling).
clearRect() Wis de opgegeven pixels in het gegeven rechthoek.

Pad

Methode Beschrijving
fill() Vul de huidige grafiek (pad) in.
stroke() Daadwerkelijk teken je gedefinieerde pad.
beginPath() Begin met het pad of reset het huidige pad.
moveTo() Verplaats het pad naar de gespecificeerde locatie op de canvas zonder een lijn te maken.
closePath() Maak een pad van de huidige punt terug naar het beginpunt.
lineTo() Voeg een nieuwe punt toe en maak een lijn van dat punt naar de laatste gespecificeerde punt op de canvas.
clip() Knip een willekeurige vorm en grootte van het gebied van de oorspronkelijke canvas uit.
quadraticCurveTo() Maak een tweevoudige Bezier-kromming.
bezierCurveTo() Maak een drievoudige Bezier-kromming.
arc() Maak een boog/boog (gebruikt om een cirkel of een deel ervan te maken).
arcTo() Maak een boog/boog tussen twee snijlijnen.
isPointInPath() Retourneer true als het opgegeven punt in het huidige pad zit, anders retourneer false.

Conversie

Methode Beschrijving
scale() Vergroten of verkleinen van de huidige grafiek.
rotate() Roteren van de huidige grafiek.
translate() Hermappeel de positie (0,0) op de canvas.
transform() Vervang de huidige conversiematrix van de tekening.
setTransform() Zet de huidige conversie terug naar een eenheidsmatrix. Vervolgens voer transform().

Tekst

Eigenschappen Beschrijving
font Instellen of retourneren van de huidige lettertype-eigenschappen van de tekstinhoud.
textAlign Instellen of retourneren van de huidige uitlijning van de tekstinhoud.
textBaseline Stel in of geef terug de huidige tekstbasisklijn die wordt gebruikt bij het tekenen van tekst.
Methode Beschrijving
fillText() Teken 'gevuld' tekst op het canvas.
strokeText() Teken tekst op het canvas (zonder vulling).
measureText() Geef een object terug dat de breedte van het gespecificeerde tekst berekent.

Afbeeldingstekening

Methode Beschrijving
drawImage() Teken een afbeelding, canvas of video op het canvas.

Pixeloperaties

Eigenschappen Beschrijving
width Geef de breedte van het ImageData object terug.
height Geef de hoogte van het ImageData object terug.
data Geef een object terug dat de afbeeldingsgegevens van het gespecificeerde ImageData object bevat.
Methode Beschrijving
createImageData() Maak een nieuw leeg ImageData object.
getImageData() Geef een ImageData object terug, dat de pixelgegevens van de gespecificeerde rechthoek op het canvas kopieert.
putImageData() Plaats de afbeeldingsgegevens (van het opgegeven ImageData object) terug op het canvas.

Compositie

Eigenschappen Beschrijving
globalAlpha Stel in of geef terug de huidige alpha of transparenswaarde van de tekening.
globalCompositeOperation Stel in of geef terug hoe een nieuw beeld wordt getekend op een bestaand beeld.

Andere

Methode Beschrijving
save() Sla de huidige contextstatus op.
restore() Geef de eerder opgeslagen padstatus en eigenschappen terug.
createEvent()
getContext()
toDataURL()

Standaard eigenschappen en gebeurtenissen

De canvas objecten ondersteunen zowel standaardEigenschappenenGebeurtenissen.

Gerelateerde pagina's

HTML Handleiding:HTML5 Canvas

HTML Afbeelding Handleiding:HTML Canvas Handleiding

HTML Referentiehandleiding:HTML <canvas> tag