Advertisement
remcoder

Convert an image to 12bit for the Nokia 6100 display

May 24th, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. function convertImage(img) {
  3.     var canvas = document.createElement("canvas");
  4.     var ctx = canvas.getContext('2d');
  5.     var w = canvas.width = img.width;
  6.     var h = canvas.height = img.height;
  7.     ctx.drawImage(img,0,0);
  8.     var imgData = ctx.getImageData(0,0,w,h);
  9.     console.log(imgData.width);
  10.  
  11.     var bitmap = [];
  12.  
  13.     // TODO, convert to 12 bit
  14.     for (var i=0 ; i<(w*h*4) ; i+=8) // step 2 pixels at a time: R1G1B1R2G2B2
  15.     {
  16.         var r1 = Math.round(imgData.data[i] / 16);
  17.         var g1 = Math.round(imgData.data[i+1] / 16);
  18.         var b1 = Math.round(imgData.data[i+2] / 16);
  19.         var r2 = Math.round(imgData.data[i+4] / 16);
  20.         var g2 = Math.round(imgData.data[i+5] / 16);
  21.         var b2 = Math.round(imgData.data[i+6] / 16);
  22.         imgData.data[i]   = r1 * 16;
  23.         imgData.data[i+1] = g1 * 16;
  24.         imgData.data[i+2] = b1 * 16;
  25.         imgData.data[i+4] = r2 * 16;
  26.         imgData.data[i+5] = g2 * 16;
  27.         imgData.data[i+6] = b2 * 16;
  28.  
  29.         var byte1 = (r1 << 4) | g1;
  30.         var byte2 = (b1 << 4) | r2;
  31.         var byte3 = (g2 << 4) | b2;
  32.         bitmap.push(byte1);
  33.         bitmap.push(byte2);
  34.         bitmap.push(byte3);
  35.  
  36.     }
  37.     ctx.putImageData(imgData, 0,0);
  38.     $container.append(canvas);
  39.     var array = "byte matthijs[] = { " + bitmap.join(",") + " } ;";
  40.  
  41.     console.log(array);
  42.     var $textarea = $("<textarea>").val(array);
  43.     $container.append($textarea);
  44.     $textarea[0].focus();
  45. }
  46.  
  47. var $container = $("body")
  48. var img = new Image();
  49. img.onload = function() {
  50.     $container.append(img);
  51.     convertImage(this);
  52. }
  53. img.src = "photo-128x128.jpeg";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement