Advertisement
peter9477

fugly!

Sep 4th, 2012
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.86 KB | None | 0 0
  1. unsigned char *data = main_ptr; // pointer the image data
  2.  
  3. for ( ii = 0; ii < _img.h; ii++)
  4. {
  5.     for ( b = 0; b < _img.w; b++)
  6.     {
  7.         *data = getGrayScale(*data);
  8.         ++data;
  9.     }
  10.  
  11. }
  12.  
  13.  
  14.  int getGrayScale(int c) {
  15.  
  16.    
  17.     int p[4];
  18.  
  19.     p[0] = (int) ((c & 0xff000000) >> 24); // Opacity level
  20.     p[1] = (int) ((c & 0x00ff0000) >> 16); // Red level
  21.     p[2] = (int) ((c & 0x0000ff00) >> 8); // Green level
  22.     p[3] = (int) (c & 0x000000ff);  // Blue level
  23.  
  24.  
  25.          // calculate the grayscale    
  26.          int bw=(p[1]+p[2]+p[3])/3;
  27.          int result = (0x000000FF<<24)|(bw<<16)|(bw<<8)|bw;
  28.    
  29.          // create the new color values
  30.          int new_r = (result >> 16) & 0xFF;
  31.          int new_g = (result >> 8) & 0xFF;
  32.          int new_b = result & 0xFF;
  33.  
  34.         int gc = (p[0] << 24 | new_r << 16 | new_g << 8| new_b);
  35.  
  36.      return gc;
  37.  
  38.  
  39.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement