Html5 Canvas gives you the ability to fetch and change the color of any pixel on the canvas.
You can use Canvas’s pixel manipulation to:
Common issues:
getImageData is disabled if you have drawn an image originating on a different domain than the web page itself.getImageData is a relatively expensive method because it creates a large pixel-data array and because it does not use the GPU to assist its efforts. Note: Canvas now has blend compositing that can do some of the same pixel manipulation that getImageData does.getImageData might not report the exact same colors as in the original .png file because the browser is allowed to do gamma-correction and alpha-premultiplication when drawing images on the canvas.Getting pixel colors
Use getImageData to fetch the pixel colors for all or part of your canvas content.
The getImageData method returns an imageData object
The imageData object has a .data property that contains the pixel color information.
The data property is a Uint8ClampedArray containing the Red, Green, Blue & Alpha (opacity) color data for all requested pixels.
// determine which pixels to fetch (this fetches all pixels on the canvas)
var x=0;
var y=0;
var width=canvas.width;
var height=canvas.height;
// Fetch the imageData object
var imageData = context.getImageData(x,y,width,height);
// Pull the pixel color data array from the imageData object
var pixelDataArray = imageData.data;
You can get position of any [x,y] pixel within data array like this:
// the data[] array position for pixel [x,y]
var n = y * canvas.width + x;