Obiekt Canvas DOM HTML

Element <canvas> definiuje obszar bitmapowy na stronie HTML.

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

API Canvas pozwala na rysowanie kształtów, linii, krzywych, ram, tekstu i obrazów, a także kolorów, obracania, przezroczystości i innych operacji na pixelach.

Dodaj Canvas do HTML

Możesz dodać element canvas w dowolnym miejscu na stronie HTML za pomocą tagu <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

属性的 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 Ustawienie lub zwracanie poziomej odległości cienia od kształtu.
shadowOffsetY Ustawienie lub zwracanie pionowej odległości cienia od kształtu.
Metoda Opis
createLinearGradient() Utwórz gradient liniowy (do zawartości powierzchni).
createPattern() Powtarzaj określone elementy w określonym kierunku.
createRadialGradient() Utwórz gradient promienisty/kolisty (do zawartości powierzchni).
addColorStop() Określ kolory i pozycje zatrzymania w obiekcie gradientu.

Styl linii

Atrybuty Opis
lineCap Ustawienie lub zwracanie stylu końcówki linii.
lineJoin Ustawienie lub zwracanie typu kąta tworzonego przez przecięcie dwóch linii.
lineWidth Ustawienie lub zwracanie bieżącej szerokości linii.
miterLimit Ustawienie lub zwracanie maksymalnej długości kąta 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 danym prostokącie.

Ścieżka

Metoda Opis
fill() Wypełnij bieżący kształt (ścieżkę).
stroke() Rzeczywiście narysuj zdefiniowaną ścieżkę.
beginPath() Zacznij ścieżkę lub zresetuj bieżącą ścieżkę.
moveTo() Przenieś ścieżkę do określonego punktu na powierzchni, bez tworzenia linii.
closePath() Utwórz ścieżkę zwracającą do punktu wyjścia.
lineTo() Dodaj nowy punkt i utwórz linię od tego punktu do ostatniego określonego punktu na powierzchni.
clip() Wytnij dowolny kształt i wielkość obszaru z oryginalnej powierzchni.
quadraticCurveTo() Utwórz dwupunktową krzywą Béziera.
bezierCurveTo() Utwórz trójpunktową krzywą Béziera.
arc() Utwórz łuk lub krzywą (używane do tworzenia okrągów lub ich części).
arcTo() Utwórz łuk lub krzywą między dwoma promieniami.
isPointInPath() Zwróć true, jeśli określony punkt znajduje się w bieżącej ścieżce, w przeciwnym razie zwróć false.

Transformacja

Metoda Opis
scale() Zwiększ lub zmniejsz 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 Ustawienie lub zwracanie bieżących właściwości czcionki treści.
textAlign Ustawienie lub zwracanie bieżącego trybu wyrównania treści tekstu.
textBaseline Ustawia lub zwraca bieżącą wartość bazy tekstu używaną do rysowania tekstu.
Metoda Opis
fillText() Rysowanie tekstu 'wypełnionego' 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, płótna 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 płótnie.
putImageData() Wraca dane obrazu (z określonego obiektu ImageData) z powrotem na płótno.

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

Standardowe atrybuty i zdarzenia

Obiekt canvas obsługuje jednocześnie standardAtrybutyiZdarzenia.

Strony związane

Tutorial HTML:Canvas HTML5

Tutorial HTML obraz:Tutorial Canvas HTML

Podręcznik HTML:Znacznik <canvas> w HTML