HTML canvas getImageData() methode
Definitie en gebruik
getImageData()
De methode retourneert een ImageData-object, dat de pixelgegevens van het gedefinieerde rechthoekige gebied van het canvas kopieert.
Voor elk pixel in het ImageData-object bestaan er vier soorten informatie, namelijk de RGBA-waarden:
- R - rood (0-255)
- G - groen (0-255)
- B - blauw (0-255)
- A - alpha-kanaal (0-255; 0 is doorschijnend, 255 is volledig zichtbaar)
color/alpha bestaat als een array en wordt opgeslagen in het ImageData-object van data eigenschappen gebruiken.
Tip:Na het uitvoeren van de operatie op de color/alpha-informatie in het array, kun je putImageData() De methode kopieert de afbeeldingsgegevens terug naar het canvas.
Voorbeeld:
Hiermee kan je de kleur/alpha-informatie van het eerste pixel van het geretourneerde ImageData-object verkrijgen:
red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3];
Tip:U kunt ook de getImageData() methode gebruiken om de kleuren van elke pixel van een bepaalde afbeelding op het canvas om te keren.
Gebruik deze formule om alle pixels te doorlopen en hun kleurwaarden te wijzigen:
red=255-old_red; green=255-old_green; blue=255-old_blue;
(Zie onderstaande "Probeer het zelf" voorbeeld.)
Voorbeeld
Voorbeeld 1
De volgende code kopieert de pixelgegevens van een specifieke rechthoek op het canvas met getImageData() en plaatst de afbeeldingsgegevens terug op het canvas met 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); {}
Tip:Meer voorbeelden worden aangeboden aan de onderkant van de pagina.
Syntax
var imgData=context.getImageData(x,y,breedte,hoogte);
Parameterwaarde
Parameter | Beschrijving |
---|---|
x | X-coördinaat van de linkerbovenhoek van het begin van de kopie. |
y | Y-coördinaat van de linkerbovenhoek van het begin van de kopie. |
breedte | Breedte van het rechthoekige gebied dat moet worden gekopieerd. |
hoogte | Hoogte van het rechthoekige gebied dat moet worden gekopieerd. |
Meer voorbeelden
Voorbeeld 2
Te gebruiken afbeelding:

Gebruik getImageData() om de kleuren van elke pixel van het canvas om te keren.
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); // kleur omkeren 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);
Browser support
The numbers in the table indicate the first browser version that fully supports this attribute.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Note:Internet Explorer 8 and earlier versions do not support the <canvas> element.