I am trying to read RGB from an image In canvas.
- I create a canvas and its context
- I ll read img.width and img.height & set the same dimensions to the canvas
- Draw the image in canvas
- Read the imagedata using getImageData()
when I see the RGB values as Red = 0, Green = 0, Blue = 0 for all the pixels of image.
<html> <head> <title></title> <script type="text/javascript"> function myfun() { var img = document.getElementById('myImg'); var width = img.clientWidth; var height = img.clientHeight; var _grayCanvas = document.getElementById('grayCanvas'); var grayctx = _grayCanvas.getContext("2d"); grayctx.canvas.width = width; grayctx.canvas.height = height; var grayimg = new Image(); grayimg.src = "img.bmp"; grayimg.onload = function () { grayctx.drawImage(grayimg, 0, 0); } var x = 0; var y = 0; var canvasColor = grayctx.getImageData(x, y, width, hieght); var red = canvasColor.data[0]; var green = canvasColor.data[1]; var blue = canvasColor.data[2]; var alpha = canvasColor.data[3]; alert(red + " : " + green + " : " + blue + " : " + alpha); for (var i = 0; i < canvasColor.data.length ; i += 4) { var red = canvasColor[i]; var green = canvasColor[i + 1]; var blue = canvasColor[i + 2]; var alpha = canvasColor[i + 3]; if(red > 0) alert(red + " : " + green + " : " + blue + " : " + alpha); } }
What might be the issue with respect to the above code ? Thanks in advance.