Domanda

Quando stiamo cercando di rendere l'immagine che l'immagine viene visualizzata dove i valori rossi e blu stanno diventando intercambiati,

      {

    colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);

        ...

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

 }
.

Se utilizzo kcgimagealphapremultipliedfirst invece di kcgimagealphapremultipliedlast l'immagine diversa del tutto e ora trovo il verde e il rosso e ottenendo un po 'intercambiata.

Si prega di consigli.

È stato utile?

Soluzione

Il suddetto problema della distorsione del colore stava accadendo a causa del modo in cui i pixel sono stati letti dal contesto bitmap, È meglio consigliato superare queste situazioni facendo le seguenti modifiche,

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top