当我们尝试渲染图像时,将显示图像,其中红色和蓝色值换算换算,

      {

    colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);

        ...

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

 }
.

如果我使用kcgimagealphapremultipriedfirst而不是kcgimagealphapremultipliedlast的图像不同,现在我找到了绿色和红色,并有点互换。

请建议。

有帮助吗?

解决方案

由于从位图上下文读取的方式,因此发生了上述颜色失真问题, 建议通过进行以下更改来克服这一情况,

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top