IPHONE: ¿Cómo extraigo los canales RGB de un UIIMage?
-
05-07-2019 - |
Pregunta
Tengo un UIImage con canal alfa.
¿Cómo extraigo los canales RGB de un UIImage, cada uno para ser un UIImage independiente con alfa?
gracias de antemano.
Solución
Me gusta esto .
También, eche un vistazo a esta pregunta - tercera respuesta en detalle paranoico
Y algunos códigos para acceder a los píxeles y guardarlos en un nuevo UIImage:
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];
adaptado de aquí . Para tener los tres canales distintos en imágenes separadas, haga clic en Me gusta en el código, establezca en cero todos menos el canal que desea guardar cada vez, y luego cree la nueva imagen.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow