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.

Foi útil?

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

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