1

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

我通过以下方式创建颜色:

          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 来检查它是否只是我的代码。结果是一样的。

谁能帮我在这里找到错误?

4

1 回答 1

-1

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

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

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

一个更容易理解的方法是,如果您要打印您制作的这张图纸,颜色系统将不得不再次将颜色转换为完全不同的颜色空间 - 您的打印机可能是 CMYK。它对你的屏幕做同样的事情。

如果您想体验显示器的“非通用性”,请转到“系统偏好设置”、“显示”并查看“颜色”选项卡。您可以在那里设置很多配置文件,以使您的显示器上出现相同的“绿色”变化......

于 2012-12-16T14:16:00.193 回答