Vous devez accéder au tableau de pixels de votre UIImageView. Pour exemple (il y a beaucoup d'autres façons aussi) avec 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;
}
}
Une simple transformation serait la luminosité à l'exemple:
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;