Question

Lorsque nous essayons de restituer l'image, l'image s'affiche là où les valeurs rouge et bleue sont échangées,

      {

    colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);

        ...

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

 }

si j'utilise kCGImageAlphaPremultipliedFirst au lieu de kCGImageAlphaPremultipliedLast, l'image est complètement différente et maintenant je trouve le vert et le rouge et je les échange un peu.

S'il vous plaît, des conseils.

Était-ce utile?

La solution

Le problème ci-dessus de la distorsion des couleurs se produisait en raison de la façon dont les pixels ont été lus dans le contexte du bitmap, il est mieux conseillé de surmonter ces situations en apportant les modifications suivantes,

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top