【问题标题】:CALayer not displaying correct colorCALayer 没有显示正确的颜色
【发布时间】:2012-12-13 12:52:17
【问题描述】:

我的 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-color:

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

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

谁能帮我找出这里的错误?

【问题讨论】:

    标签: objective-c xcode cocoa colors calayer


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 首先感谢您的回答。我对颜色有很好的概念,我对此并不陌生。所以我不认为这是一个颜色校准的事情。 CALayers 未正确显示。颜色差远了。如果我在openGL中创建一个具有相同颜色的四边形,比如说绿色,颜色,它看起来就是它应该看起来的样子。所以CALayers肯定有问题。显示器以正确的方式显示颜色。我也在那里使用 Photoshop。所以我不认为这是一个色彩校正问题。不过还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多