CALayer无法显示正确的颜色

时间:2012-12-13 12:52:17

标签: objective-c xcode cocoa colors calayer

我的CALayers没有显示正确的颜色。该项目在osX 10.8.2上运行,并安装了所有XCode更新。

我用以下方式创建颜色:

          lineColor1=CGColorCreateGenericRGB(1.0f, 1.0f, 1.0f, 1.0f);
          rootLayer.backgroundColor=lineColor1;

所有灰度颜色都是正确的。但是,当我尝试制作绿色时,它有一个蓝色成分。

          lineColor2=CGColorCreateGenericRGB(0.0f, 1.0f, 0.0f, 1.0f);

在Photoshop中检查时,上面一行会产生以下rgb颜色:

          (0.0f, 0.98f, 0.29f, 1.0f)

红色和蓝色也是如此。所有实际颜色都是混合的,产生错误的结果。我错过了什么吗?我甚至使用Apple提供的CALayerEssentials来检查它是否只是我的代码。结果是一样的。

有人可以帮我在这里找到错误吗?

1 个答案:

答案 0 :(得分:-1)

事实上,你的颜色可能比你想象的更正确。 CGColorCreateGenericRGB允许您创建通用RGB颜色。

所以你所做的就是告诉颜色系统你想要绿色。事实上纯绿色。现在要求颜色系统在特定设备上绘制CALayer - 可能在屏幕上。

你的屏幕有自己的显示颜色的方式,它可能以各种有趣的方式脱离理想。因此,颜色系统采用理论上要求它绘制的颜色,并计算绘制CALayer所需的实际颜色值,以确保它看起来像你要求它画画。

一种更容易理解的方法是,如果您要打印此图纸,颜色系统必须再次将颜色转换为完全不同的颜色空间 - 这可能是您的打印机CMYK。它与你的屏幕完全一样。

如果您想体验显示器的“非通用”状态,请转到“系统偏好设置”,“显示”并查看“颜色”标签。您可以设置很多配置文件,以便在显示器上显示相同的“绿色”更改...