1

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 カラーを生成します。

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

同じことが赤と青にも起こります。すべての実際の色が混ざり合い、間違った結果が生成されます。何か不足していますか?Apple が提供する CALayerEssentials を使用して、自分のコードだけかどうかを確認しました。結果は同じです。

ここでエラーを見つけるのを手伝ってくれる人はいますか?

4

1 に答える 1

-1

実際、あなたの色はおそらくあなたが想像するよりも正しいでしょう。CGColorCreateGenericRGBを使用すると、一般的なRGBカラーを作成できます。

だからあなたがしたことはあなたが緑が欲しいことをカラーシステムに伝えることです。実際には純粋な緑。これで、カラーシステムは、特定のデバイス(おそらく画面上)にCALayerを描画するように求められます。

画面には独自の色の表示方法があり、さまざまな興味深い方法で理想から外れている可能性があります。したがって、カラーシステムは、理論的に描画するように要求した色を取得し、CALayerを描画するために必要な実際の色の値を計算して、描画するように要求した色と同じように見えるようにします。

理解しやすい方法は、作成したこの図面を印刷する場合、カラーシステムは色を完全に異なる色空間に変換する必要があるということです。これはおそらくCMYKであるプリンターの色です。画面でもまったく同じことをしています。

モニターがどれほど「一般的でない」かを体験したい場合は、「システム環境設定」、「ディスプレイ」に移動し、「色」タブを確認してください。モニター上で同じ「緑」の外観を変更するために設定できるプロファイルはたくさんあります...

于 2012-12-16T14:16:00.193 に答える