IPHONE: Wie entpacke ich die RGB-Kanäle eines UIImage?
-
05-07-2019 - |
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.
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