2010-12-14 11 views
0

Wie steuert man mehrere UIImageview Aktionen mit einem einzigen Uislider in iPhone SDK? Aktionen wie Farbton, Kontrast, Helligkeit, Sättigung, Schärfe.Bildverarbeitung

Alle Beispielcodes oder Lernprogramme. Bitte helfen Sie mir. Vielen Dank im Voraus.

Antwort

0

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;