Interface Builder中的颜色错误

use*_*909 32 xcode colors picker ios

问题:我在Interface Builder中设置了一个颜色,设置了RGB通道,然后我做了一个工作窗口的截图,在Photoshop中打开它,并通过颜色选择器检查颜色,我在Interface Builder中设置了颜色选择器.结果 - RGB值与我设置的值不同.

视频:http: //www.youtube.com/watch?v = ASLfnYHPbqM

当我尝试使用Interface Builder的颜色选择器时,大多数异常都从第45秒开始.它显示RGB值与我在他身上的相同和安装的值不同,但сolor拾取器IB的值与颜色选择器Photoshop的值一致.

Mec*_*cki 53

Apple认为颜色看起来更加重要,因为颜色到处都有相同的RGB值.请注意,相同的RGB值在不同的屏幕上看起来不一样,因为每个屏幕都有不同的显示特性.

因此,当您截取屏幕截图时,Apple不仅会为图像中的每个像素存储RGB值,还会将监视器的显示特性存储在图像文件中.这有什么用?如果其他人打开您的屏幕截图,系统可以查看创建它的人的监视器特征,将其与想要观看它的人的监视器的监视器特征进行比较,然后可以计算它必须如何采用RGB图像中的使图像在当前监视器上看起来相同.如果它只是显示RGB值而没有做任何这些,图像颜色可能看起来不对(在某些情况下只是略微,在某些情况下更多,如果用户有一个非常糟糕的监视器,在某些情况下甚至根本错误) .

因此系统会向图形适配器发送不同的RGB值,因为RGB颜色本身并不能真正描述颜色.RGB值与显示器配置文件一起描述颜色,而RGB值不重要,颜色很重要.如果我做了一些红色的东西,我希望它在每个显示器上都是相同的红色.我不希望它在一台显示器上变成深红色,在另一台显示器上变成浅红色,在第三台显示器上变成粉红色.

Photoshop的问题在于它有自己的内置色彩校正机制.Photoshop通常适用于sRGB(标准RGB色彩空间)或Adobe RGB(Adobe发明的扩展色彩空间).当您加载的图像不在所需的颜色空间内时,Photoshop将转换图像的颜色空间,并且每个颜色空间转换都会导致RGB值发生变化.请注意,Photoshop中显示的图像仍然会根据您当前的显示器颜色特征进行颜色校正,它只是您在Photoshop中操作的RGB值在另一个颜色空间中,当存储回文件时,Photoshop会将值转换回来或它会保留它们并在图像文件中嵌入一个新的颜色配置文件.

RGB单独用于描述颜色的时代已经过去很多年了.今天,RGB本身就毫无意义,只有当与颜色配置文件结合使用时,它才能在描述实际颜色时变得非常有意义.

如果您想要嵌入没有嵌入真彩色配置文件的屏幕截图,请执行以下操作:

  1. 打开"系统偏好设置"
  2. 转到"显示"
  3. 转到"颜色"
  4. 选择"通用RGB配置文件"
  5. 制作截图
  6. 更改您的个人资料

在更改配置文件之前可能需要先退出Xcode(并在更改配置文件后重新启动它),因为我不确定更改配置文件是否会立即生效.它肯定会直接影响显示器上显示的内容,但是如果你想通过选择特定的RGB值来选择Xcode中的颜色,我不确定配置文件的更改是否也会立即生效(你可以给它尝试不重新启动,如果不起作用,则必须重新启动).

这可能仍会导致Photoshop中的颜色不正确,因为Photoshop仍然可以将颜色转换为sRGB或Adobe RGB.因此,您可能希望选择"sRGB"配置文件(取决于您的OS X版本,也可能命名为"sRGB IEC61966-2.1"),而不是选择"Generic RGB Profile".这样,图像已经处于sRGB色彩空间中.您只需要说服Photoshop保持这种方式(而不是将其转换为Adobe RGB),然后您将在Xcode和Photoshop中看到相同的RGB值.

请注意更改颜色配置文件如何使您的显示看起来完全不同?您认为颜色变化是否显着?相信我,与不同的显示器有时会改变颜色的方式相比,这没什么.也许你现在可以理解为什么色彩校正如此重要.所以问题是,为什么RGB值对你来说如此重要?只要显示的颜色相同,RGB值是否相同真的很重要吗?

  • 谢谢,这是网络上唯一有效的解决方案.关键是在将显示更改为"Generic RGB Profile"之前退出Xcode.然后,当您选择"保存为Web和设备"时,取消选中"转换为sRGB"框.然后在Xcode中,单击颜色选择器中的颜色空间弹出窗口并选择"Generic RGB",然后从Photoshop输入红色,绿色和蓝色值,而不是HEX VALUE,因为这会由于某种原因恢复到sRGB颜色空间(be注意不要标记到十六进制字段,因为这也会将空格更改为sRGB). (8认同)

KML*_*KML 13

这是可行的指南,只需按照这些步骤操作,您可以以编程方式设置UIColor,并使它们与屏幕截图中的颜色匹配.

在此输入图像描述