Pergunta

I têm um UIImage com alfa canal.

Como faço para extrair os canais RGB de um UIImage, cada um para ser um UIImage independente com alfa?

Agradecemos antecipadamente.

Foi útil?

Solução

Como este .

Além disso, dê uma olhada em esta questão - terceira resposta em detalhes paranóico
E algum código para acessar os pixels e salvá-los em um novo 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];

aqui . Para ter os três canais distintos em imagens separadas, faça como no código, set a zero todos, mas o canal que deseja salvar cada vez, e em seguida, criar a nova imagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top