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.

¿Fue útil?

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
scroll top