Canvas API

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

De Canvas API stelt JavaScript in staat om grafieken op het doek te tekenen.

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

Canvas toevoegen aan HTML

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

Voorbeeld

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

Probeer het zelf uit

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 tekenfunctionaliteit.

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 het 2D context-object kunt u op het canvas tekenen.

De onderstaande fillRect()-methode tekent een zwart rechthoekig gebied met de linkerbovenhoek op de positie 20,20. Het rechthoekige gebied 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 uit

Gebruik van kleur

De fillStyle-eigenschap stelt de vulkleur van het tekenobject in:

Voorbeeld

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

Probeer het zelf uit

U kunt ook een nieuwe <canvas>-element maken met de methode document.createElement() en dit element toevoegen aan een 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 uit

Pad

Een van de meest voorkomende methoden om op een 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 uit

Kleuren, stijlen en schaduwen

Eigenschappen Beschrijving
fillStyle Instellen of retourneren van de kleur, het kleurenpalet of het patroon dat wordt gebruikt voor het vullen van de tekening.
strokeStyle Instellen of retourneren van de kleur, het kleurenpalet 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 vageniveau van de schaduw.
shadowOffsetX Instellen of retourneren van de horizontale afstand van de schaduw tot de vorm.
shadowOffsetY Instellen of retourneren van de verticale afstand van de schaduw tot de vorm.
Methode Beschrijving
createLinearGradient() Maak een lineaire kleurenschakering (gebruikt voor canvasinhoud).
createPattern() Herhaal de gespecificeerde elementen in de opgegeven richting.
createRadialGradient() Maak een radiaal/cirkelmatige kleurenschakering (gebruikt voor canvasinhoud).
addColorStop() Stel de kleuren en stopposities in van het kleurenschakeringobject.

Lijnstijl

Eigenschappen Beschrijving
lineCap Instellen of retourneren van het stijltype van de lijnkap.
lineJoin Instellen of retourneren van het type hoek dat wordt gecreëerd wanneer twee lijnen kruisen.
lineWidth Instellen of retourneren van de huidige lijnhoogte.
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 (geen invulling).
clearRect() Wis de opgegeven pixels binnen het gegeven rechthoek.

Pad

Methode Beschrijving
fill() Vul de huidige grafiek (pad) in.
stroke() Teken in feite het gedefinieerde pad.
beginPath() Begin een pad of reset het huidige pad.
moveTo() Verplaats het pad naar de gespecificeerde locatie op het canvas zonder een lijn te maken.
closePath() Maak een pad van de huidige punt terug naar de startpunt.
lineTo() Voeg een nieuwe punt toe en maak een lijn van dat punt naar de laatste gespecificeerde punt op het canvas.
clip() Knip een willekeurige vorm en grootte van een gebied uit het oorspronkelijke canvas.
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 gespecificeerde punt in het huidige pad zit, anders retourneer false.

Transformatie

Methode Beschrijving
scale() Vergroot of verklein de huidige grafiek.
rotate() Rooster de huidige grafiek.
translate() Hermappeel de positie (0,0) op het canvas.
transform() Vervang de huidige transformatatiematrix van het tekenen.
setTransform() Zet de huidige transformatie 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 tekstbasiskant die wordt gebruikt voor het tekenen van tekst.
Methode Beschrijving
fillText() Teken 'gevuld' tekst op het canvas.
strokeText() Teken tekst op het canvas (zonder invulling).
measureText() Geef een object terug dat de breedte van de gespecificeerde tekst bevat.

Beeldtekenen

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 een specifieke ImageData object bevat.
Methode Beschrijving
createImageData() Maak een nieuw leeg ImageData object.
getImageData() Geef een ImageData object terug, dat de pixelgegevens van een specifieke rechthoek op het canvas kopieert.
putImageData() Plaats de afbeeldingsgegevens (van het specifieke 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 Referentiemanual:HTML <canvas> tag