Canvas API

<canvas>-elementet definerer et bitmapområde i en HTML-side.

Canvas API giver JavaScript mulighed for at tegne grafik på canvas.

Canvas API kan tegne former, linjer, kurver, rammer, tekst og billeder, samt farver, rotation, gennemsigtighed og andre pixeloperationer.

Tilføj Canvas til HTML

Du kan tilføje et canvas-element i hvilken som helst position på en HTML-side ved hjælp af <canvas>-tagget:

Eksempel

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

Prøv det selv

Sådan får du adgang til Canvas-elementet

Du kan bruge HTML DOM-metoden getElementById() til at få adgang til <canvas>-elementet:

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

Hvis du vil tegne på tavlen, skal du oprette en 2D kontekstobjekt:

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

Noter

HTML <canvas> elementet har ikke selv tegningsfunktioner.

Du skal bruge JavaScript til at tegne ethvert grafisk element.

getContext() metoden returnerer et objekt med tegningsværktøjer (metoder).

Tegn på tavlen

Efter at have oprettet 2D konteksten kan du tegne på tavlen.

Nedenstående fillRect() metode tegner en sort rektangel, hvis øvre venstre hjørne er placeret i position 20,20. Rektanglen er 150 pixel bred og 100 pixel høj:

Eksempel

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

Prøv det selv

Brug farve

fillStyle egenskaben indstiller farven på tegningsobjektet:

Eksempel

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

Prøv det selv

Du kan også bruge document.createElement() metoden til at oprette et nyt <canvas> element og tilføje dette element til den eksisterende HTML-side:

Eksempel

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

Prøv det selv

Sti

En almindelig metode til at tegne på en tavle er:

  1. Start stien - beginPath()
  2. Flyt til en punkt - moveTo()
  3. Tegn i stien - lineTo()
  4. Tegn sti - stroke()

Eksempel

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();

Prøv det selv

Farve, stil og skygge

egenskaber Beskrivelse
fillStyle Indstil eller returner farven, stilen eller mønstret, der bruges til at fylde tegningen.
strokeStyle Indstil eller returner farven, stilen eller mønstret, der bruges til kantlinjen.
shadowColor Indstil eller returner farven, der bruges til skyggen.
shadowBlur Indstil eller returner skyggeens slørligningsgrad.
shadowOffsetX Indstil eller returner den horisontale afstand til skyggen fra former.
shadowOffsetY Indstil eller returner den vertikale afstand til skyggen fra former.
Metode Beskrivelse
createLinearGradient() Opret en lineær farvegrad (bruges til canvasindhold).
createPattern() G gentag de specificerede elementer i en bestemt retning.
createRadialGradient() Opret en radial/cirkulær farvegrad (bruges til canvasindhold).
addColorStop() Definer farver og stoppositioner i en farvegrad.

Linetilstand

egenskaber Beskrivelse
lineCap Indstil eller returner stilkappen.
lineJoin Indstil eller returner typen af vinklen, der oprettes, når to linjer krydser.
lineWidth Indstil eller returner den nuværende linjebredde.
miterLimit Indstil eller returner den maksimale skråningslængde.

Rektangel

Metode Beskrivelse
rect() Opret en rektangel.
fillRect() Tegn en 'fyldt' rektangel.
strokeRect() Tegn en rektangel (uden fyldning).
clearRect() Fjern de specificerede pixel inden for den givne rektangel.

Sti

Metode Beskrivelse
fill() Fyld den nuværende figur (sti).
stroke() Tegner faktisk den definerede sti.
beginPath() Start en sti eller nulstil den nuværende sti.
moveTo() Flyt stien til en bestemt punkt på canvaset uden at oprette en linje.
closePath() Opret en sti fra den nuværende punkt til startpunktet.
lineTo() Tilføj en ny punkt og opret en linje fra dette punkt til den sidste angivne punkt på canvaset.
clip() Beskær en vilkårlig form og størrelse af område fra den oprindelige canvas.
quadraticCurveTo() Opret en andels Bezier-kurve.
bezierCurveTo() Opret en tredjedels Bezier-kurve.
arc() Opret en bue/kurve (bruges til at oprette en cirkel eller en del af en cirkel).
arcTo() Opret en bue/kurve mellem to tangenter.
isPointInPath() Returner true, hvis den angivne punkt er i den nuværende sti, ellers returner false.

Konvertering

Metode Beskrivelse
scale() Forstør eller formindsk den nuværende figur.
rotate() Roter den nuværende figur.
translate() Genmapp et bestemt punkt på canvaset til (0,0) positionen.
transform() Erstat den nuværende konverteringsmatrix for tegning.
setTransform() Nulstil den nuværende konvertering til enhedsmatrix. Derefter kør transform().

Tekst

egenskaber Beskrivelse
font Indstil eller returner de nuværende skrifttypeegenskaber for tekstindholdet.
textAlign Indstil eller returner den nuværende justering af tekstindholdet.
textBaseline Indstil eller returner den nuværende tekstbaseligning, der bruges til tegning af tekst.
Metode Beskrivelse
fillText() Tegn 'fyldt' tekst på canvaset.
strokeText() Tegn tekst på canvaset (uden fyldning).
measureText() Returnerer et objekt, der indeholder den specificerede tekstbredde.

Billedtegning

Metode Beskrivelse
drawImage() Tegn et billede, canvas eller video på canvaset.

Pixeloperationer

egenskaber Beskrivelse
width Returnerer bredden på ImageData objektet.
height Returnerer højden på ImageData objektet.
data Returnerer et objekt, der indeholder billeddata fra det specificerede ImageData objekt.
Metode Beskrivelse
createImageData() Opret et nyt tomt ImageData objekt.
getImageData() Returnerer et ImageData objekt, der kopierer pixeldata fra den specificerede rektangel på canvaset.
putImageData() Læg billeddata (fra den specificerede ImageData objekt) tilbage på canvaset.

Synkronisering

egenskaber Beskrivelse
globalAlpha Indstil eller returner den nuværende alpha eller gennemsigtighedsværdi for tegning.
globalCompositeOperation Indstil eller returner, hvordan en ny image skal tegnes på eksisterende image.

Andet

Metode Beskrivelse
save() Gemmer den nuværende konteksttilstand.
restore() Returnerer den tidligere gemte stiplaceringstilstand og egenskaber.
createEvent()
getContext()
toDataURL()

standard egenskaber og begivenheder

canvas objektet understøtter både standardegenskaberogBegivenheder.

Relaterede sider

HTML undervisning:HTML5 Canvas

HTML billedundervisning:HTML Canvas undervisning

HTML referencer:HTML <canvas> tag