How are individual pixels represented in memory?
Created Jan 28, 2000
John Zukowski
Keep in mind that you cannot store each value in a byte as bytes are signed.
Each pixel is stored as a 32 bit integer (int). The int packs four unsigned bytes within it, one for each of the alpha, red, green, and blue (ARGB) color planes, in that order.
| Alpha (8-bits) |
Red (8-bits) |
Green (8-bits) |
Blue (8-bits) |
| 32 bit pixel | |||
To get at each value, you would use a masking operation and a bit shift :
int alpha = (pixel & 0xff000000) >> 24; int red = (pixel & 0x00ff0000) >> 16; int green = (pixel & 0x0000ff00) >> 8; int blue = (pixel & 0x000000ff) >> 0;
Keep in mind that you cannot store each value in a byte as bytes are signed.