Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE HTML>
  2. <html>
  3.   <head>
  4.     <style>
  5.       body {
  6.         margin: 0px;
  7.         padding: 0px;
  8.       }
  9.     </style>
  10.   </head>
  11.   <body>
  12.     <canvas id="myCanvas" width="578" height="400"></canvas>
  13.     <script>
  14.    
  15. var a = grayscaleX('http://screenshots.en.sftcdn.net/en/scrn/76000/76818/microsoft-small-basic-22.jpg');
  16.  
  17.    
  18. function grayscaleX(src){ //Creates a canvas element with a grayscale version of the color image
  19.     //create canvas
  20.     var canvas = document.createElement('canvas');
  21.     //get its context
  22.     var ctx = canvas.getContext('2d');
  23.     //create empty image
  24.     var imgObj = new Image();
  25.     //start to load image from src url
  26.     imgObj.src = src;
  27.     //resize canvas up to size image size
  28.     canvas.width = imgObj.width;
  29.     canvas.height = imgObj.height;
  30.     //draw image on canvas
  31.     ctx.drawImage(imgObj, 0, 0);
  32.     //get array of image pixels
  33.     var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
  34. //I GET ERROR IN THE ABOVE LINE
  35.  
  36.     //true means it is white colour line
  37.     var line = false;
  38.     var previous_line = false;
  39.     //img number
  40.     var img = 0;
  41.     var pixels = new Array();
  42.     pixels.push(0);
  43.     //run through all the pixels
  44.     for(var x = 0; x < imgPixels.width; x++){
  45.         line = false;
  46.         for(var y = 0; y < imgPixels.height; y++){
  47.             //here is x and y are multiplied by 4 because every pixel is four bytes: red, green, blue, alpha
  48.             var i = (y * 4) * imgPixels.width + x * 4; //Why is this multiplied by 4?
  49.             //compute average value for colors, this will convert it to bw
  50.             var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
  51.             if(avg>200)
  52.             {   //white
  53.                 avg = 300;
  54.             }
  55.             else
  56.             {   //black
  57.                 avg = 1;
  58.                 line = true;
  59.                 pixels[pixels.length-1]++;
  60.             }
  61.             //set values to array
  62.             imgPixels.data[i] = avg;
  63.             imgPixels.data[i + 1] = avg;
  64.             imgPixels.data[i + 2] = avg;
  65.         }
  66.         //
  67.         if(line==false && previous_line==true)
  68.         {
  69.             img++;
  70.             pixels.push(0);
  71.         }
  72.         previous_line = line;
  73.     }
  74.     alert(pixels.join());
  75.     //draw pixels according to computed colors
  76.     ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
  77.     return canvas.toDataURL();
  78. }  
  79.    
  80.      
  81.      
  82.    
  83.     </script>
  84.   </body>
  85. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement