Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned char *data = main_ptr; // pointer the image data
- for ( ii = 0; ii < _img.h; ii++)
- {
- for ( b = 0; b < _img.w; b++)
- {
- *data = getGrayScale(*data);
- ++data;
- }
- }
- int getGrayScale(int c) {
- int p[4];
- p[0] = (int) ((c & 0xff000000) >> 24); // Opacity level
- p[1] = (int) ((c & 0x00ff0000) >> 16); // Red level
- p[2] = (int) ((c & 0x0000ff00) >> 8); // Green level
- p[3] = (int) (c & 0x000000ff); // Blue level
- // calculate the grayscale
- int bw=(p[1]+p[2]+p[3])/3;
- int result = (0x000000FF<<24)|(bw<<16)|(bw<<8)|bw;
- // create the new color values
- int new_r = (result >> 16) & 0xFF;
- int new_g = (result >> 8) & 0xFF;
- int new_b = result & 0xFF;
- int gc = (p[0] << 24 | new_r << 16 | new_g << 8| new_b);
- return gc;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement