2011-07-18 16 views
0

モニタを較正するためには、モニタをデバイスのRGB値で駆動できる必要があります。NSColor:colorWithDeviceRed ...は2番目のモニタでは機能しません

私はで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]]; 

I「はからDigitalColorメーター」を使用する場合ビューがプライマリモニタに表示されている場合、このデバイス色のみ変換されずに適用されます。メニューバーが表示されているモニタでのみ表示されます。

2番目のモニタにビューを置くと、メインディスプレイのRGBから2番目のディスプレイのRGBへの変換が行われたように見えます。両方のディスプレイの色域の間に大きな違いがある場合にのみ、これが表示されます。私は、たとえばEizo ColorEdge CG 245を搭載したMacBook Proを持っています。 [0 0 1.0]を入力すると、[0.2 0.1 1.0]のようなものが得られます。

誰でもこの余分な変換を取り除く方法について考えてください。私の意見では、deviceRGBはdeviceRGBでなければなりません。第2のモニターのプロファイルを作成するには、これは必須です。今度は、メニューバーを2番目のモニタに移動し、プロファイルを作成して戻してください。しかし、アプリケーションでは、検証を行う必要があり、頻繁に行う必要があります。そして同じ問題がここで起こります。

答えて

0

これは私のバグのようです。私はreporting itを提案する。

回避策として、drawRect:に応答するカスタムビューを実装してみてください(CGContextSetRGBFillColorCGContextFillRect)。 (あなたthe current NSGraphicsContextからget the CGContextことができます。)CGContextSEtRGBFillColorと

+0

同じ問題:(100、0、0) - >(100、12、0)、(0、100、0) - >(0、100、0)、 (0,0,100)→(24,0,100)である。純粋な緑だけが純粋なままです。 – user850121

+0

@ user850121:古いApple Studio Display(LCD)をメインディスプレイとして使用したことについて報告したバグのようなものです(7542845)。ブルーはそれを最も明白に、痛ましいほどにしました。私は非常に紫色に見える青い重いゲームであるDeus Exのスクリーンショットを添付しました。私はまだあなた自身のバグを提出することをお勧めします。あなたのさまざまな状況(外部ディスプレイ)に注意してください。 –

関連する問題