IPhone: Como faço para extrair os canais RGB de um UIImage?
-
05-07-2019 - |
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.
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