Frage

Ich habe eine UIImage mit Alpha-Kanal.

Wie kann ich die RGB-Kanäle eines UIImage extrahieren, die jeweils eine unabhängige UIImage mit Alpha sein?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Wie href="https://stackoverflow.com/questions/1352989/how-to-nslog-pixel-rgb-from-a-uiimage">.

Werfen Sie auch einen Blick auf diese Frage - dritte Antwort in paranoid Detail
Und einige Code für die Pixel zuzugreifen und sie in eine neue UIImage zu speichern:

UIImage* image = ...; // An image
NSData* pixelData = (NSData*) CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage));
void* pixelBytes = [pixelData bytes];

//Leaves only the green pixel, assuming 32-bit RGBA
for(int i = 0; i < [pixelData length]; i += 4) {
        bytes[i] = 0; // red
        bytes[i+1] = bytes[i+1]; // green
        bytes[i+2] = 0; // blue
        bytes[i+3] = 0; // alpha
    }

NSData* newPixelData = [NSData dataWithBytes:pixelBytes length:[pixelData length]];
UIImage* newImage = [UIImage imageWithData:newPixelData];

angepasst von hier . Um die drei verschiedenen Kanäle in getrennten Bildern haben, tun wie im Code, setzt alle, aber der Kanal auf Null, die Sie jedes Mal speichern mögen, und dann das neue Bild erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top