在Mac OS X上呈现后,RGB颜色将显示为BRG
-
21-12-2019 - |
题
当我们尝试渲染图像时,将显示图像,其中红色和蓝色值换算换算,
{
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
不隶属于 StackOverflow