As cores RGB são chegando exibido como BRG após o processamento no MAC OS X
-
21-12-2019 - |
Pergunta
Quando estamos a tentar processar a imagem, a imagem está ficando exibida, onde o Vermelho e o Azul valores estão recebendo trocados,
{
colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
...
cgctx = CGBitmapContextCreate (bitmapData,
pixelsWide,
pixelsHigh,
8, // bits per component
bitmapBytesPerRow,
colorSpace,
kCGImageAlphaPremultipliedLast);
}
se eu usar kCGImageAlphaPremultipliedFirst em vez de kCGImageAlphaPremultipliedLast a imagem completamente diferente e agora eu encontrar o Verde e o Vermelho e ficar um pouco intercambiados.
Por Favor, Conselhos.
Solução
O problema acima de distorção de cor estava acontecendo devido à forma como os pixels foram lidos a partir do mapa de bits contexto, é melhor aconselhados a superar estas situações, fazendo as seguintes alterações,
#if __BIG_ENDIAN__
bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Big;
#else
bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little;
#endif