I want to know the color of all the pixel and want to return an array of it. This is how I am doing it so far:
- (NSMutableArray *) colorOfPointinArray{
    NSMutableArray *array_of_colors=[[NSMutableArray alloc] init];
    unsigned char pixel[4]={0};
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGBitmapAlphaInfoMask & kCGImageAlphaPremultipliedLast);
    for (int x_axis=0; x_axis<screenWidth; x_axis++)
    {
        for (int y_axis=0; y_axis<screenHeight; y_axis++)
        {
            CGContextTranslateCTM(context, -x_axis, -y_axis);
            [self.layer renderInContext:context];
            UIColor *color = [UIColor colorWithRed:pixel[0]/255.0 green:pixel[1]/255.0 blue:pixel[2]/255.0 alpha:pixel[3]/255.0];
            [array_of_colors addObject:color];
        }
    }
    CGContextRelease(context);
    CGColorSpaceRelease(colorSpace);
    return array_of_colors;
}
Now, this is taking so much time and freezes the app. I think its because of the 2 for-loops I have added. How can I improve this ?