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>
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);
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);
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);
Pad
Een van de meest voorkomende methoden om op het canvas te tekenen is:
- Beginnen van een pad - beginPath()
- Verplaatsen naar een punt - moveTo()
- Tekenen in het pad - lineTo()
- 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();
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