Metode Canvas getImageData()
Definisi dan penggunaan
getImageData()
Metode ini mengembalikan objek ImageData, yang menyalin data pixel kotak yang ditentukan di atas kanvas.
Untuk setiap pixel di objek ImageData, ada empat aspek informasi, yaitu nilai RGBA:
- R - Merah (0-255)
- G - Hijau (0-255)
- B - Biru (0-255)
- A - channel alpha (0-255; 0 adalah transparan, 255 adalah terlihat penuh)
warna/alpha ada dalam bentuk array dan disimpan di objek ImageData data properti.
Petunjuk:Setelah operasi array informasi warna/alpha selesai, Anda dapat menggunakan putImageData() Metode akan menyalin data gambar kembali ke atas kanvas.
Contoh:
Berikut adalah kode yang dapat mengambil informasi warna/alpha pertama pixel ImageData yang diembalikan:
red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3];
Petunjuk:Anda juga dapat menggunakan metode getImageData() untuk membalikkan warna setiap pixel gambar di atas kanvas.
Gunakan rumus ini untuk melooping semua pixel dan mengubah nilai warna nya:
red=255-old_red; green=255-old_green; blue=255-old_blue;
(Lihat contoh di bawah ini 'Coba Sendiri'。)
Contoh
Contoh 1
Kode di bawah ini menggunakan getImageData() untuk menyalin data pixel persegi panjang yang ditentukan di layar, dan kemudian meletakkan data gambar kembali ke layar dengan putImageData():
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.fillStyle="red"; ctx.fillRect(10,10,50,50); function copy() { var imgData=ctx.getImageData(10,10,50,50); ctx.putImageData(imgData,10,70); }
Petunjuk:Beberapa contoh lainnya disediakan di bagian bawah halaman.
Sintaks
var imgData=context.getImageData(x,y,width,height);
Nilai Parameter
Parameter | Deskripsi |
---|---|
x | Koordinat x titik kiri atas yang akan disalin. |
y | Koordinat y titik kiri atas yang akan disalin. |
width | Lebar area persegi panjang yang akan disalin. |
height | Tinggi area persegi panjang yang akan disalin. |
Contoh Lainnya
Contoh 2
Gambar yang akan digunakan:

Gunakan getImageData() untuk membalikkan warna setiap pixel gambar di layar.
JavaScript:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("tulip"); ctx.drawImage(img,0,0); var imgData=ctx.getImageData(0,0,c.width,c.height); // Balik warna for (var i=0;i<imgData.data.length;i+=4) { imgData.data[i]=255-imgData.data[i]; imgData.data[i+1]=255-imgData.data[i+1]; imgData.data[i+2]=255-imgData.data[i+2]; imgData.data[i+3]=255; } ctx.putImageData(imgData,0,0);
Dukungan peramban
Angka di tabel menandai versi peramban pertama yang sepenuhnya mendukung atribut ini.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Keterangan:Internet Explorer 8 dan versi sebelumnya tidak mendukung elemen <canvas>.