为了能够校准显示器,我必须能够以设备RGB值驱动它。
为了做到这一点,我创建了一个NSColor:
[NSColor colorWithDeviceRed:(colorsPtr[cnt]/255.0f) green:(colorsPtr[cnt+1]/255.0f)
blue:(colorsPtr[cnt+2]/255.0f) alpha:1.0]
然后我将此颜色放在视图上。
[colorView setColor:[colorsForMeasuring objectAtIndex:index]];
当我使用“DigitalColor仪表”时,只有在主显示器上显示视图时,才会应用此设备颜色而不进行任何转换。所以只能在显示器上有菜单栏。
如果您将视图放在第二台显示器上,看起来好像发生了从主显示器的RGB到第二显示器的RGB的转换。如果两个显示器的色域之间存在很大差异,则只能看到这个。我有一台配备Eizo ColorEdge CG 245的MacBook Pro。如果你然后放[0 0 1.0],你可能得到[0.2 0.1 1.0]。
任何人都知道如何摆脱这种额外的转换。我认为deviceRGB应该是deviceRGB。为了制作第二台监视器的配置文件,这是必需的。现在我必须将菜单栏移动到第二个监视器,创建配置文件并将其移回。但是对于我们的应用程序,客户需要能够进行验证,这需要经常进行。这里也出现同样的问题。
答案 0 :(得分:0)
这对我来说听起来像个错误。我建议reporting it。
作为一种变通方法,您可以尝试通过调用drawRect:
和CGContextSetRGBFillColor
来实现自定义视图,在该视图中您可以回复CGContextFillRect
。 (您可以get the CGContext来the current NSGraphicsContext。)