Here is some code to read the actual image pixel data of a CGImageRef:
NSData *data = (NSData *)CGDataProviderCopyData(CGImageGetDataProvider(cgimage));
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];
}