【问题标题】:RGB colors are getting displayed as BRG after rendering on MAC OS X在 MAC OS X 上渲染后,RGB 颜色显示为 BRG
【发布时间】:2014-01-09 11:32:49
【问题描述】:

当我们尝试渲染图像时,图像会显示在红色和蓝色值互换的位置,

      {

    colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);

        ...

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

 }

如果我使用 kCGImageAlphaPremultipliedFirst 而不是 kCGImageAlphaPremultipliedLast 图像完全不同,现在我发现绿色和红色有点互换了。

请指教。

【问题讨论】:

    标签: macos colors quartz-graphics quartz-2d cgcolorspace


    【解决方案1】:

    由于从位图上下文中读取像素的方式,会发生上述颜色失真问题, 最好通过以下更改来克服这种情况,

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

    【讨论】:

      猜你喜欢
      • 2011-06-10
      • 2021-04-18
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2016-06-17
      相关资源
      最近更新 更多