API Canvas
- Poprzednia strona Styl HTML
- Następna strona Konsola API
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>
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
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);
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 | 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() |
Strony związane
Tutorial HTML:Canvas HTML5
Tutorial obrazu HTML:Tutorial Canvas HTML
Podręcznik referencyjny HTML:Tag <canvas> HTML
- Poprzednia strona Styl HTML
- Następna strona Konsola API