Sie müssen auf das Pixel-Array Ihres UIImageView zugreifen. Zum Beispiel (es gibt viele andere Möglichkeiten, auch) mit CGContextRef
CGContextRef context = [self createARGBBitmapContextFromImage:yourView.image.CGImage];
unsigned char* data = CGBitmapContextGetData (context);
size_t width = CGImageGetWidth(yourView.image.CGImage);
size_t height = CGImageGetHeight(yourView.image.CGImage);
for (int y=0; y<height; y++) {
for (int x=0; x<width; x++) {
int pos = y*width + x;
int argb = data[pos];
int r = (argb >> 16) & 0xff;
int g = (argb >> 8) & 0xff;
int b = argb & 0xff;
// do here your transformations
data[pos] = (0xFF<<24) | (r<<16) | (g<<8) | b;
}
}
Eine einfache Umwandlung würde die Helligkeit zu Beispiel sein:
r = (int) (r + brightness);
g = (int) (g + brightness);
b = (int) (b + brightness);
if(r>=255) r=255;
if(g>=255) g=255;
if(b>=255) b=255;