API Canvas

Elemen <canvas> mendefinisikan area bitmap di halaman HTML.

API Canvas memungkinkan JavaScript untuk menggambar grafik di atas kanvas.

API Canvas dapat menggambar bentuk, garis, kurva, kotak, teks, dan gambar, serta warna, putar, kecerahan, dan operasi pixel lainnya.

Menambahkan Canvas ke HTML

Anda dapat menambah elemen canvas di lokasi mana saja di halaman HTML yang menggunakan tag <canvas>:

Contoh

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

Coba sendiri

Bagaimana mengakses elemen Canvas

Anda dapat mengakses elemen <canvas> menggunakan metode HTML DOM getElementById():

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

Untuk menggambar di atas kanvas, Anda perlu membuat objek konteks 2D:

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

Catatan

Elemen HTML <canvas> sendiri tidak memiliki fungsi gambar.

Anda harus menggunakan JavaScript untuk menggambar grafik apapun.

Metode getContext() mengembalikan objek yang memiliki alat gambar (metode).

Menggambar di atas kanvas

Setelah membuat objek konteks 2D, Anda dapat menggambar di atas kanvas.

Metode fillRect() di bawah ini menggambar lingkaran hitam, titik kiri atasnya berada di posisi 20,20. Lingkaran ini lebar 150 piksel dan tinggi 100 piksel:

Contoh

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

Coba sendiri

Dengan warna

Properti fillStyle mengatur warna pengisi objek gambar.

Contoh

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

Coba sendiri

Anda juga dapat menggunakan metode document.createElement() untuk membuat elemen <canvas> baru dan menambahkannya ke halaman HTML yang ada:

Contoh

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

Coba sendiri

Jalur

Metode yang biasa digunakan untuk menggambar di atas kanvas adalah:

  1. Mulai jalur - beginPath()
  2. Pindah ke titik - moveTo()
  3. Menggambar di jalur - lineTo()
  4. Menggambar jalur - stroke()

Contoh

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

Coba sendiri

Warna, gaya, dan bayangan

Atribut Deskripsi
fillStyle Atur atau kembalikan warna, gradient, atau pola yang digunakan untuk pengisi gambar.
strokeStyle Atur atau kembalikan warna, gradient, atau pola yang digunakan untuk pengecoran.
shadowColor Atur atau kembalikan warna yang digunakan untuk bayangan.
shadowBlur Atur atau kembalikan tingkat kabur bayangan.
shadowOffsetX Setel atau kembalikan jarak horizontal dari bayangan ke bentuk.
shadowOffsetY Setel atau kembalikan jarak vertikal dari bayangan ke bentuk.
Metode Deskripsi
createLinearGradient() Buat gelombang linear (digunakan untuk konten kanvas).
createPattern() Ulangi elemen yang ditentukan di arah yang ditentukan.
createRadialGradient() Buat gelombang radial/circular (digunakan untuk konten kanvas).
addColorStop() Tentukan warna dan posisi berhenti di dalam objek gelombang.

Gaya garis

Atribut Deskripsi
lineCap Setel atau kembalikan gaya ujung garis.
lineJoin Setel atau kembalikan tipe sudut yang dibuat saat garis bertemu.
lineWidth Setel atau kembalikan lebar garis saat ini.
miterLimit Setel atau kembalikan panjang maksimal sisi yang mendekati.

Persegi panjang

Metode Deskripsi
rect() Buat persegi panjang.
fillRect() Gambar persegi panjang yang diisi.
strokeRect() Gambar persegi panjang (tanpa pengisi).
clearRect() Hapus pixel yang ditentukan di dalam persegi panjang.

Jalur

Metode Deskripsi
fill() Isi grafik saat ini (jalur).
stroke() Menggambar jalur yang anda tentukan.
beginPath() Mulai jalur, atau atur jalur saat ini kembali ke awal.
moveTo() Pindahkan jalur ke titik yang ditentukan di atas kanvas tanpa membuat jalur.
closePath() Buat jalur kembali ke titik awal.
lineTo() Tambahkan titik baru dan buat jalur dari titik ini ke titik yang terakhir yang ditentukan di atas kanvas.
clip() Potong area berukuran apapun dan bentuk yang berbeda dari kanvas asli.
quadraticCurveTo() Buat curva kubik dua.
bezierCurveTo() Buat curva kubik tiga.
arc() Buat serupa lingkaran/curva (digunakan untuk membuat lingkaran atau bagian lingkaran).
arcTo() Buat serupa lingkaran/curva di antara dua tangga.
isPointInPath() Kembalikan true jika titik yang ditentukan berada di jalur saat ini, sebaliknya kembalikan false.

Transformasi

Metode Deskripsi
scale() Besarkan atau kecilkan grafik saat ini.
rotate() Putar grafik saat ini.
translate() Ulangi pemetaan posisi (0,0) di atas kanvas.
transform() Ganti matriks transformasi yang digunakan untuk pengerubahan gambar saat ini.
setTransform() Kembalikan transformasi saat ini ke matriks satuan. kemudian jalankan transform().

Teks

Atribut Deskripsi
font Setel atau kembalikan atribut huruf teks konten saat ini.
textAlign Setel atau kembalikan gaya penataan teks konten saat ini.
textBaseline Atur atau kembalikan bawah garis teks yang digunakan saat menggambar teks.
Metode Deskripsi
fillText() Gambar teks 'diisi' di atas kanvas.
strokeText() Gambar teks di atas kanvas (tanpa pengepakan).
measureText() Kembalikan objek yang mengandung lebar teks yang ditentukan.

Penggambaran gambar

Metode Deskripsi
drawImage() Gambarkan gambar, kanvas, atau video di atas kanvas.

Operasi pixel

Atribut Deskripsi
width Kembalikan lebar objek ImageData.
height Kembalikan tinggi objek ImageData.
data Kembalikan objek yang mengandung data gambar objek ImageData yang ditentukan.
Metode Deskripsi
createImageData() Buat objek ImageData yang kosong baru.
getImageData() Kembalikan objek ImageData yang menyalin data pixel persegi panjang yang ditentukan di atas kanvas.
putImageData() Kembalikan data gambar (dari objek ImageData yang ditentukan) ke atas kanvas.

Penggabungan

Atribut Deskripsi
globalAlpha Atur atau kembalikan nilai alpha atau kecerahan saat ini untuk penggambaran.
globalCompositeOperation Atur atau kembalikan cara menggambar gambar baru ke atas gambar yang ada.

Lainnya

Metode Deskripsi
save() Simpan status konteks saat ini.
restore() Kembalikan status dan atribut jalur yang disimpan sebelumnya.
createEvent()
getContext()
toDataURL()

Atribut standar dan peristiwa

Objek canvas mendukung standarAtributdanPeristiwa.

Halaman Terkait

Panduan HTML:Canvas HTML5

Panduan Gambar HTML:Panduan Canvas HTML

Panduan Referensi HTML:Tag <canvas> HTML