Here's a function to get/replace the color at a specified pixel:
// test
setPixel(100,200,0,0,255);
function setPixel(x, y, red, green, blue) {
var pxData = ctx.getImageData(x,y,1,1);
pxData.data[0]=red;
pxData.data[1]=green;
pxData.data[2]=blue;
pxData.data[3]=255;
ctx.putImageData(pxData,x,y);
}
If you're doing many pixels then you can pull the getImageData to a variable outside setPixel for better performance:
var pxData = ctx.getImageData(x,y,1,1);
// test
for(var x=100;x<125;x++){
setPixel(x,200,0,0,255);
}
function setPixel(x, y, red, green, blue) {
pxData.data[0]=red;
pxData.data[1]=green;
pxData.data[2]=blue;
pxData.data[3]=255;
ctx.putImageData(pxData,x,y);
}