Here is some code to read the actual image pixel data of a CGImageRef:
const char *bytes = (const char *)[data bytes]; int len = [data length]; // Note: this assumes 32bit RGBA for (int i = 0; i < len; i += 4) { char r = bytes[i]; char g = bytes[i+1]; char b = bytes[i+2]; char a = bytes[i+3]; }