API Canvas

Element <canvas> definiuje obszar bitmapowy na stronie HTML.

API Canvas pozwala JavaScriptowi na rysowanie grafik na płótnie.

API Canvas pozwala na rysowanie kształtów, linii, krzywych, ram, tekstu i obrazów, a także operacje na kolorach, obracaniu, przezroczystości i innych operacjach na pikselach.

Dodaj Canvas do HTML

Możesz dodać element canvas w dowolnym miejscu strony HTML za pomocą znacznika <canvas>:

Przykład

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

Spróbuj sam!

Jak uzyskać dostęp do elementu Canvas

Możesz użyć metody HTML DOM getElementById() do uzyskania dostępu do elementu <canvas>:

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

Aby rysować na płótnie, musisz utworzyć obiekt kontekstu 2D:

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

Notatki

Element HTML <canvas> sam w sobie nie ma funkcji rysowania.

Musisz użyć JavaScript do rysowania jakichkolwiek grafik.

Metoda getContext() zwraca obiekt z narzędziami do rysowania (metodami).

Rysowanie na płótnie

Po utworzeniu obiektu kontekstu 2D, możesz rysować na płótnie.

Poniższa metoda fillRect() rysuje czarny prostokąt, którego górny lewy róg znajduje się w pozycji 20,20. Szerokość tego prostokąta wynosi 150 pikseli, a wysokość 100 pikseli:

Przykład

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

Spróbuj sam!

Używając koloru

Property fillStyle ustawia kolor wypełnienia obiektu rysowania:

Przykład

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

Spróbuj sam!

Możesz również użyć metody document.createElement() do utworzenia nowego elementu <canvas> i dodania go do istniejącej strony HTML:

Przykład

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

Spróbuj sam!

Ścieżka

Zwykłe metody rysowania na płótnie:

  1. Rozpoczęcie ścieżki - beginPath()
  2. Przeniesienie do punktu - moveTo()
  3. Rysowanie w ścieżce - lineTo()
  4. Rysowanie ścieżki - stroke()

Przykład

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

Spróbuj sam!

Kolor, styl i cień

Atrybuty Opis
fillStyle Ustawienie lub zwracanie koloru, gradientu lub wzoru używanego do wypełnienia.
strokeStyle Ustawienie lub zwracanie koloru, gradientu lub wzoru używanego do konturu.
shadowColor Ustawienie lub zwracanie koloru używanego do cienia.
shadowBlur Ustawienie lub zwracanie poziomu rozmycia cienia.
shadowOffsetX Ustawia lub zwraca poziomą odległość cienia od kształtu.
shadowOffsetY Ustawia lub zwraca pionową odległość cienia od kształtu.
Metoda Opis
createLinearGradient() Utwórz gradient liniowy (do zawartości powierzchni).
createPattern() Powtarzaj określony element w określonym kierunku.
createRadialGradient() Utwórz gradient promienisty/kolisty (do zawartości powierzchni).
addColorStop() Określa kolory i pozycje zatrzymania w obiekcie gradientu.

Styl linii

Atrybuty Opis
lineCap Ustawia lub zwraca styl końcówek linii.
lineJoin Ustawia lub zwraca typ kąta tworzonego, gdy dwie linie się przecinają.
lineWidth Ustawia lub zwraca bieżącą szerokość linii.
miterLimit Ustawia lub zwraca maksymalną długość nachylenia.

Prostokąt

Metoda Opis
rect() Utwórz prostokąt.
fillRect() Narysuj 'wypełniony' prostokąt.
strokeRect() Narysuj prostokąt (bez wypełnienia).
clearRect() Wyczyść określone piksele w podanym prostokącie.

Ścieżka

Metoda Opis
fill() Wypełnij bieżący kształt (ścieżkę).
stroke() Rzeczywiście rysuj zdefiniowaną ścieżkę.
beginPath() Zacznij ścieżkę lub zresetuj bieżącą ścieżkę.
moveTo() Przenieś ścieżkę do wskazanego punktu na powierzchni, bez tworzenia linii.
closePath() Utwórz ścieżkę zwracającą do punktu startowego.
lineTo() Dodaj nowy punkt i utwórz linię do ostatniego wskazanego punktu na powierzchni.
clip() Wytnij dowolny kształt i rozmiar z oryginalnej powierzchni.
quadraticCurveTo() Twórz dwupunktową krzywą Bezier.
bezierCurveTo() Twórz trójpunktową krzywą Bezier.
arc() Twórz łuk lub krzywą (używane do tworzenia okrągów lub ich części).
arcTo() Twórz łuk lub krzywą między dwoma promieniami.
isPointInPath() Zwraca true, jeśli wskazany punkt znajduje się w bieżącej ścieżce, w przeciwnym razie zwraca false.

Transformacja

Metoda Opis
scale() Powiększ lub pomniejsz bieżący kształt.
rotate() Obróć bieżący kształt.
translate() PrzeMAPuj pozycję (0,0) na powierzchni.
transform() Zastąp bieżącą macierz transformacji rysowania.
setTransform() Przywróć bieżącą transformację do macierzy jednostkowej. Następnie uruchom transform().

Tekst

Atrybuty Opis
font Ustawia lub zwraca bieżące właściwości czcionki treści.
textAlign Ustawia lub zwraca bieżący sposób wyrównania treści tekstu.
textBaseline Ustawia lub zwraca bieżącą wartość bazy tekstu używaną do rysowania tekstu.
Metoda Opis
fillText() Rysowanie 'wypełnionego' tekstu na płótnie.
strokeText() Rysowanie tekstu na płótnie (bez wypełnienia).
measureText() Zwraca obiekt zawierający szerokość określonego tekstu.

Rysowanie obrazu

Metoda Opis
drawImage() Rysowanie obrazu, canvas lub wideo na płótnie.

Operacje na pixelach

Atrybuty Opis
width Zwraca szerokość obiektu ImageData.
height Zwraca wysokość obiektu ImageData.
data Zwraca obiekt zawierający dane obrazu określonego obiektu ImageData.
Metoda Opis
createImageData() Tworzy nowy pusty obiekt ImageData.
getImageData() Zwraca obiekt ImageData, który kopiuje dane pikseli z określonego prostokąta na canvas.
putImageData() Wraca dane obrazu (z określonego obiektu ImageData) na canvas.

Syntetyzacja

Atrybuty Opis
globalAlpha Ustawia lub zwraca bieżącą wartość alpha lub przezroczystość rysowania.
globalCompositeOperation Ustawia lub zwraca sposób, w jaki nowy obraz jest rysowany na istniejącym obrazie.

Inne

Metoda Opis
save() Zapisuje bieżący stan kontekstu.
restore() Zwraca poprzedni stan ścieżki i atrybuty, które były zapisane.
createEvent()
getContext()
toDataURL()

Atrybuty i zdarzenia standardowe

Obiekt canvas obsługuje zarówno standardoweAtrybutyiZdarzenia.

Strony związane

Tutorial HTML:Canvas HTML5

Tutorial obrazu HTML:Tutorial Canvas HTML

Podręcznik referencyjny HTML:Tag <canvas> HTML