Canvas API

<canvas>-elementti määrittää bittikarttavyöhykkeen HTML-sivulla.

Canvas API sallii JavaScriptin piirtää kuvioita taululle.

Canvas API voi piirtää muotoja, viivoja, kurvia, laatikoita, tekstiä ja kuvia, sekä värejä, kiertoa, läpinäkyvyyttä ja muita kuvapistemääriä.

Lisää Canvas HTML:ään

Voit lisätä canvas-elementin HTML-sivun mihin tahansa sijaintiin <canvas>-tagin avulla:

Esimerkki

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

Kokeile itse

Miten päästä Canvas-elementtiin

Voit käyttää HTML DOM-metodia getElementById() saadaksesi pääsy <canvas>-elementtiin:

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

Jos haluat piirtää käsityksessä, sinun on luotava 2D-objekti:

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

Huomioitavaa

HTML <canvas>-elementti ei sisällä piirtämismahdollisuuksia.

Sinun on käytettävä JavaScriptiä kaikkien kaavion piirtämisen tarkoituksiin.

getContext()-menetelmä palauttaa objektin, joka sisältää piirtätykaluja (menetelmiä).

Piirrä käsityksessä

Kun olet luonut 2D-objektin, voit piirtää käsityksessä.

Alapuolella oleva fillRect()-menetelmä piirtäät mustan suorakulmion, jonka ylärevasen kulma sijaitsee sijainnissa 20,20. Suorakulmion leveys on 150 pikseliä ja korkeus 100 pikseliä:

Esimerkki

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

Kokeile itse

Käytä väriä

fillStyle-ominaisuus asettaa piirtoobjektin täytteen väri.

Esimerkki

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

Kokeile itse

Voit lisääätä uuden <canvas>-elementin olemassa olevaan HTML-sivulle document.createElement() -menetelmän avulla:

Esimerkki

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

Kokeile itse

Polku

Yleisimmät tavan täytteisiin käsityksessä on:

  1. Aloita polku - beginPath()
  2. Siirry pisteeseen - moveTo()
  3. Jatka polkua polun sisällössä - lineTo()
  4. Jatka polkua - stroke()

Esimerkki

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

Kokeile itse

Väri, tyyli ja varjo

ominaisuudet Kuvaus
fillStyle Aseta tai palauta täytteen väri, gradientti tai kuviointi.
strokeStyle Aseta tai palauta reunaviivan väri, gradientti tai kuviointi.
shadowColor Aseta tai palauta varjojen väri.
shadowBlur Aseta tai palauta varjojen pehmennysaste.
shadowOffsetX Aseta tai palauta varjon horisontaalinen etäisyys muodosta.
shadowOffsetY Aseta tai palauta varjon vaakasuuntainen etäisyys muodosta.
Metodi Kuvaus
createLinearGradient() Luo lineaarinen väriasteikko (käytetään kankaan sisällön piirtämiseen).
createPattern() Toista määritettyä elementtiä annetussa suunnassa.
createRadialGradient() Luo säteellinen/kylkiraita (käytetään kankaan sisällön piirtämiseen).
addColorStop() Määritä värit ja pysäytysasemat väriasteikossa.

Viivatyylit

ominaisuudet Kuvaus
lineCap Aseta tai palauta viivan päätytyylin.
lineJoin Aseta tai palauta kahden viivan risteytyessä luodun kulman tyyppi.
lineWidth Aseta tai palauta nykyinen viivaleveys.
miterLimit Aseta tai palauta suurin kiertokulma.

Nelikulmio

Metodi Kuvaus
rect() Luo nelikulmio.
fillRect() Piirrä 'täytetty' nelikulmio.
strokeRect() Piirrä nelikulmio (ei täyttöä).
clearRect() Puhdistaa annetun nelikulmion sisällä olevat määritetyt kuvapisteet.

Polku

Metodi Kuvaus
fill() Täytä nykyinen kuva (polku).
stroke() Itse asiassa piirrä määrittämäsi polku.
beginPath() Aloita polku tai nollaa nykyinen polku.
moveTo() Siirrä polku kankaan määritettyyn pisteeseen ilman viivan luomista.
closePath() Luo polku, joka palaa nykyisestä pisteestä lähtöpisteeseen.
lineTo() Lisää uusi piste ja luo viiva, joka alkaa tästä pisteestä ja menee viimeiseen määritettyyn pisteeseen kankaalla.
clip() Leikkaa pois minkä tahansa muodon ja koon alue alkuperäisestä kankaasta.
quadraticCurveTo() Luo kaksinkulmainen Bezier-käyrä.
bezierCurveTo() Luo kolmikulmainen Bezier-käyrä.
arc() Luo särmäyskierros/särmäyskierre (käytetään ympyrän tai sen osan luomiseen).
arcTo() Luo särmäyskierros/särmäyskierre kahden tangentin välille.
isPointInPath() Jos määritetty kohta on nykyisessä polulla, palauta true, muuten palauta false.

Muunnos

Metodi Kuvaus
scale() Lähesty tai etäänny nykyisestä kuvasta.
rotate() Kiertä nykyinen kuva.
translate() Uudelleenmääritä kankaan (0,0) sijainti.
transform() Korvaa nykyinen piirustuksen muunnosmatriisi.
setTransform() Nollaa nykyinen muunnos yksikkömatriseksi. Sitten suorita transform().

Teksti

ominaisuudet Kuvaus
font Aseta tai palauta tekstin nykyiset kirjasinkappaleet.
textAlign Aseta tai palauta tekstin nykyinen tasausmuoto.
textBaseline Asettaa tai palauttaa nykyisen tekstin pohjapohjan.
Metodi Kuvaus
fillText() Piirrä 'täytetty' teksti maalausalueelle.
strokeText() Piirrä teksti maalausalueelle (ei täyttöä).
measureText() Palauttaa objektin, joka sisältää määritetyn tekstin leveyden.

Kuvapiirtäminen

Metodi Kuvaus
drawImage() Piirrä kuva, maalausalue tai video maalausalueelle.

Pikselinhallinta

ominaisuudet Kuvaus
width Palauttaa ImageData-objektin leveyden.
height Palauttaa ImageData-objektin korkeuden.
data Palauttaa objektin, joka sisältää määritetyn ImageData-objektin kuvatiedot.
Metodi Kuvaus
createImageData() Luo uuden tyhjän ImageData-objektin.
getImageData() Palauttaa ImageData-objektin, joka kopioi maalausalueen määritetyn nelikulmion kuvapikselitiedot.
putImageData() Palauttaa kuvatiedot (määritetystä ImageData-objektista) takaisin maalausalueelle.

Yhdistäminen

ominaisuudet Kuvaus
globalAlpha Asettaa tai palauttaa piirtämisen nykyisen alpha- tai läpinäkyvyysarvon.
globalCompositeOperation Asettaa tai palauttaa, miten uusi kuva piirretään nykyiseen kuvaan.

Muut

Metodi Kuvaus
save() Tallentaa nykyisen kontekstin tilan.
restore() Palauttaa aiemmin tallennetun polun tilan ja ominaisuudet.
createEvent()
getContext()
toDataURL()

standardeja ominaisuuksia ja tapahtumia

canvas-objekti tukee sekä standardejaominaisuudetjaTapahtumat.

Liittyvät sivut

HTML opas:HTML5 maalaus

HTML kuvaopas:HTML Canvas opas

HTML viittausopas:HTML <canvas> tagi