11

3つのUIColorの色相、彩度、明るさを取得した結果をいくつか紹介します。

[[UIColor redColor] getHue:&hue
                saturation:&saturation
                 brightness:&brightness
                 alpha:&alpha];

hue = 1.0 saturatino = 1.0 brightness = 1.0 alpha = 0.0

[[UIColor whiteColor] getHue:&hue
                  saturation:&saturation
                  brightness:&brightness
                       alpha:&alpha];

hue = 0.0 saturatino = 0.0 brightness = 0.0 alpha = 0.0

[[UIColor blackColor] getHue:&hue
                  saturation:&saturation
                  brightness:&brightness
                       alpha:&alpha];

hue = 0.0 saturatino = 0.0 brightness = 0.0 alpha = 0.0

白と黒の色相、彩度、明るさが等しい理由を誰かが説明できますか?なぜアルファはゼロに等しいのですか?

私のプロジェクトでやりたかったのは、明るさを変更することで、特定の色から「暗い」色を生成することです。

明るさ=明るさ*0.8;

どの色でも問題なく動作しますが、白色から黒色を生成します。(私は灰色を期待しますが)。

4

1 に答える 1

12

その理由は、HSB色空間と互換性のないグレースケール色空間で両方が色を返す+whiteColorためです。+blackColorそのため、-getHue:saturation:brightness:alpha:実際にはパラメータを変更していません。0.0そのメソッドを呼び出す前に、それらがすべて設定されていることがわかると思います。戻り値を確認する-getHue:saturation:brightness:alpha:と、HSBに正常に変換されたかどうかがわかります。

于 2013-02-28T08:42:19.457 に答える