ctx.beginPath(); // vuota buffer
ctx.fillStyle = ""; // colore quadrato grande
ctx.fillRect(0,0,50,50); // posizione e dimensioni del quadrato
ctx.fillStyle = ""; // colore quadrato piccolo
ctx.fillRect(10,10,30,30);// // posizione e dimensioni del quadrato
var imgData = ctx.getImageData(0, 0, 400, 300);// legge canvas
var i;
for (i = 0; i < imgData.data.length; i += 4) {
imgData.data[i] = - imgData.data[i]; // cambia colore (255-imgData.data lo inverte)
imgData.data[i+1] = - imgData.data[i+1];
imgData.data[i+2] = - imgData.data[i+2];
imgData.data[i+3] = ;// opacità (0-255)
}
ctx.putImageData(imgData, 50,50,,,,); // disegna con nuovi colori
//ad esempio con: ctx.putImageData(imgData,50,50,8,834,34); disegna quadrato piccolo con bordo
putImageData(): Deisegna immagine copiandola e modificandola da una zone del canvas