Pregunta

Cuando intentamos hacer que la imagen se muestre la imagen donde los valores rojos y azules se están intercambiando,

      {

    colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);

        ...

    cgctx = CGBitmapContextCreate (bitmapData,
                                pixelsWide,
                                pixelsHigh,
                                8,      // bits per component
                                bitmapBytesPerRow,
                                colorSpace,
                                kCGImageAlphaPremultipliedLast);

 }

Si uso kcgimagealphapremultipliedfirst en lugar de kcgimagealphapremultiplied, la imagen es diferente, y ahora encuentro el verde y el rojo y se está intercambiando un poco.

por favor conseje.

¿Fue útil?

Solución

El problema anterior de la distorsión del color estaba sucediendo debido a la forma en que se le han leído los píxeles del contexto de mapa de bits, Se recomienda mejor que supere estas situaciones haciendo los siguientes cambios,

#if __BIG_ENDIAN__ bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Big; #else bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little; #endif

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top