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>
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);
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);
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);
Ścieżka
Zwykłe metody rysowania na płótnie:
- Rozpoczęcie ścieżki - beginPath()
- Przeniesienie do punktu - moveTo()
- Rysowanie w ścieżce - lineTo()
- 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();
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() |
Strony związane
Tutorial HTML:Canvas HTML5
Tutorial HTML obraz:Tutorial Canvas HTML
Podręcznik HTML:Znacznik <canvas> w HTML