HTML canvas getImageData() yöntemi
Tanım ve Kullanım
getImageData()
Metod, çerçeveye belirtilen矩形的像素数据拷贝的 ImageData nesnesi döndürür.
ImageData nesnesindeki her piksel, RGBA değerleri olarak dört yön bilgisi içerir:
- R - kırmızı (0-255)
- G - yeşil (0-255)
- B - mavi (0-255)
- A - alpha kanalı (0-255; 0 şeffaftır, 255 tamamen görünürlüdür)
color/alpha, ImageData nesnesinin data özniteliklerinde kullanabilirsiniz.
İpucu:Array'deki color/alpha bilgilerini işlemekten sonra, putImageData() Metni çerçeveye kopyalama yöntemi.
Örnek:
Aşağıdaki kod, döndürülen ImageData nesnesinin ilk pikselin color/alpha bilgilerini elde etmeyi sağlar:
red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3];
İpucu:Ayrıca, getImageData() yöntemini kullanarak kanva üzerindeki belirli bir resmin her pixelinin rengini tersine çevirebilirsiniz。
Bu formülü kullanarak tüm pixel'leri tarayın ve renk değerlerini değiştirin:
red=255-old_red; green=255-old_green; blue=255-old_blue;
(请见下面的“亲自试一试”实例。)
实例
例子 1
Aşağıdaki kod, getImageData() ile kanva üzerinde belirli bir矩形的像素数据进行复制,然后通过 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); }
İpucu:Daha fazla örnek, sayfa altında sağlanmaktadır.
Sözdizimi
var imgData=context.getImageData(x,y,genişlik,yükseklik);
Parametre değeri
Parametre | Açıklama |
---|---|
x | Kopyalamanın sol üst köşesinin x koordinatı. |
y | Kopyalamanın sol üst köşesinin y koordinatı. |
genişlik | Kopyalanacak düzgen alanının genişliği. |
yükseklik | Kopyalanacak düzgen alanının yüksekliği. |
Daha fazla örnek
Örnek 2
Kullanılacak resim:

getImageData() kullanarak kanva üzerindeki her pixelin rengini tersine çevirin.
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); // Renkleri tersine çevir 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);
Tarayıcı Desteği
Tablo içindeki rakamlar, bu özelliği tam olarak destekleyen ilk tarayıcı sürümünü belirtir.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Açıklama:Internet Explorer 8 ve daha eski sürümler <canvas> ögesini desteklemez.