Metodo getImageData() del canvas HTML
Definizione e uso
getImageData()
Il metodo restituisce un oggetto ImageData, che copia i dati dei pixel del rettangolo specificato sulla lavagna.
Per ogni pixel dell'oggetto ImageData, ci sono quattro tipi di informazioni, ovvero i valori RGBA:
- R - rosso (0-255)
- G - verde (0-255)
- B - blu (0-255)
- A - canale alpha (0-255; 0 è trasparente, 255 è completamente visibile)
Il color/alpha esiste in forma di array e viene memorizzato nell'oggetto ImageData data proprietà.
Suggerimento:Dopo aver completato l'operazione delle informazioni di color/alpha nell'array, puoi utilizzare putImageData() Il metodo copia i dati dell'immagine sulla lavagna.
Esempio:
Il seguente codice può ottenere le informazioni di color/alpha del primo pixel dell'oggetto ImageData restituito:
red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3];
Suggerimento:Puoi anche utilizzare il metodo getImageData() per invertire i colori di ogni pixel di un'immagine sul canvas.
Puoi utilizzare la formula per esplorare tutti i pixel e modificare i loro valori di colore:
red=255-old_red; green=255-old_green; blue=255-old_blue;
(Vedi l'esempio "Prova tu stesso" sotto.).
Esempio
Esempio 1
Il seguente codice copia i dati dei pixel di un rettangolo specifico sul canvas utilizzando getImageData() e poi ripristina i dati dell'immagine utilizzando 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); }
Suggerimento:Più esempi disponibili nella parte inferiore della pagina.
Sintassi
var imgData=context.getImageData(x,y,width,height);
Valore del parametro
Parametro | Descrizione |
---|---|
x | Coordinata x dell'angolo superiore sinistro del punto di partenza della copia. |
y | Coordinata y dell'angolo superiore sinistro del punto di partenza della copia. |
width | Larghezza della regione rettangolare da copiare. |
height | Altezza della regione rettangolare da copiare. |
Più esempi
Esempio 2
Immagine da utilizzare:

Usa getImageData() per invertire i colori di ogni pixel dell'immagine sul canvas.
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); // invertire i colori 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);
Supporto del browser
I numeri nella tabella indicano la versione del browser che supporta per la prima volta questa proprietà.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Nota:Internet Explorer 8 e versioni precedenti non supportano l'elemento <canvas>.