Interface Builder中的颜色错误
问题:我在界面生成器中设置了一个颜色,设置了通道RGB,然后我做了一个工作窗口的截图,在Photoshop中打开它,并通过颜色select器检查颜色,这是我在界面生成器中设置的。 结果 – RGB值与我设置的不同。
video: http : //www.youtube.com/watch?v = ASLfnYHPbqM
当我尝试使用界面生成器的颜色select器时,大多数exception始于第45秒。 它显示的RGB值是不同的,我已经在他身上相同和安装),但с色select器IB的值与颜色select器Photoshop的值重合。
苹果公司认为, 颜色看起来是一样的,而不是颜色在任何地方都有相同的RGB值。 看,相同的RGB值在不同的屏幕上看起来不一样,因为每个屏幕都有不同的显示特性。
所以,当你截图的时候,苹果公司不仅仅为图像中的每一个像素存储一个RGB值,它们还将你的显示器的显示特性存储在图像文件中。 这有什么好处? 如果有人打开你的屏幕截图,系统可以查看创build者的显示器特性,并将其与想要观看该显示器的人的显示器的显示器特性进行比较,然后可以计算出如何采用RGB图像中的值 ,以使图像在当前显示器上看起来相同。 如果只显示RGB值而没有执行任何操作,则图像颜色可能看起来不正确(在某些情况下,只是稍微有点,在某些情况下会更多一些,而且如果用户的显示器非常糟糕,在某些情况下甚至根本不对) 。
所以系统发送不同的RGB值给graphics适配器,因为RGB颜色本身并不真正描述颜色。 RGB值与监视器configuration文件一起描述颜色,而不是RGB值是重要的,颜色是重要的。 如果我做出红色的东西,我希望它在每个显示器上都是一样的红色。 我不想让它在一台显示器上变成深红色,在另一台显示器上变成红色,在第三台显示器上变成红色。
Photoshop的问题是它有自己的内置颜色校正机制。 Photoshop通常在sRGB(标准RGB色彩空间)或Adobe RGB(Adobe发明的扩展色彩空间)中工作。 当加载不在所需色彩空间内的图像时,Photoshop将变换图像的色彩空间,每个色彩空间变换都会导致RGB值发生变化。 请注意,在Photoshop中显示的图像仍然根据当前的显示器颜色特征进行颜色校正,这只是您在Photoshop中操作的RGB值在另一个颜色空间中,当存储回文件时,Photoshop会将值转换回或它会保留它们并在图像文件中embedded一个新的颜色configuration文件。
RGB已经被用来描述颜色的时代已经结束很多年了。 今天,RGB本身就毫无意义,只有当与颜色configuration文件相结合时,才能在描述实际颜色时变得非常有意义。
如果你想要一个没有embedded真实颜色configuration文件的截图,请执行以下操作:
- 打开“系统首选项”
- 转到“显示”
- 转到“颜色”
- select“通用RGBconfiguration文件”
- 制作你的截图
- 改回你的个人资料
可能需要先退出Xcode,然后再更改configuration文件(并在将其更改后重新启动它),因为我不确定是否立即更改configuration文件。 它肯定会立即影响显示器上的显示效果,但是如果您想通过select特定的RGB值来selectXcode中的颜色,我不确定configuration文件更改是否会立即生效(您可以给它尝试不重新启动,如果这不起作用,您必须重新启动)。
这可能仍然会导致在Photoshop中不正确的颜色,因为Photoshop仍然可以将颜色转换为sRGB或Adobe RGB。 因此,您可以select“通用RGBconfiguration文件”,而不是select“sRGB”configuration文件(取决于您的OS X版本,也可能被命名为“sRGB IEC61966-2.1”)。 这样图像已经在sRGB色彩空间。 你只需说服Photoshop保持这种方式(而不是将其转换为Adobe RGB),然后在Xcode和Photoshop中就可以看到相同的RGB值。
请注意如何更改颜色configuration文件使您的显示看起来完全不同? 你认为颜色变化是戏剧性的? 相信我,相比于不同的显示器有时可能会改变颜色,这并不算什么。 也许你现在可以理解为什么色彩校正如此重要。 所以问题是,为什么RGB值对你来说如此重要呢? 只要显示的颜色是相同的,RGB值是否相同,是否真的很重要?
这是工作的指南 ,只要按照这些步骤,你可以设置UIColor编程,并让他们匹配截图的颜色。