当我们尝试渲染图像时,图像会显示在红色和蓝色值互换的位置,
{
colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
...
cgctx = CGBitmapContextCreate (bitmapData,
pixelsWide,
pixelsHigh,
8, // bits per component
bitmapBytesPerRow,
colorSpace,
kCGImageAlphaPremultipliedLast);
}
如果我使用kCGImageAlphaPremultipliedFirst而不是kCGImageAlphaPremultipliedLast图像完全不同,现在我找到绿色和红色并且有点互换。
请建议。
答案 0 :(得分:0)
由于从Bitmap上下文中读取像素的方式,出现了上述颜色失真问题, 建议通过进行以下更改来克服这种情况,
#if __BIG_ENDIAN__
bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Big;
#else
bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little;
#endif