0

だから私は作成した色を持っていて、それがどのくらい白いかの値を返そうとしています...

color1 = [UIColor colorWithRed:188/255.f green:50/255.f blue:219/255.f alpha:1];

このメソッドを使用して、色相、彩度、明るさの値を返すことができます。

[color1 getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha];

それはうまく機能し、あらゆる種類の浮動小数点値を取得します

しかし、Apple の「GetWhite」メソッドを使用しようとすると、入力した色に関係なく、返される値は常に 0.00000 です。

[color1 getWhite:&white alpha:&alpha];

私は何を間違っていますか?最初にカラーをグレースケールに変換する必要がありますか? もしそうなら、どうすればいいですか?何かがどのくらい白いかを検出する簡単な方法はありますか...赤/緑/青の値を平均してから255で割るだけですか? ありがとう!

(*また、私の評判はこれに「getWhite」タグを追加するほど高くありません。誰か作成できますか...これに対する答えをグーグルで検索しても何も出てきません...そのタグを作成することで、困っている他の人を助けることができるかもしれません.)

4

1 に答える 1

2

あなたの質問は、getWhite の目的を理解していない可能性があることを示しています。ドキュメントから:

色が互換性のある色空間にある場合、色はグレースケール形式に変換されます...

したがって、この関数の目的は、グレースケールで色の値を取得することです。この値を取得する目的を説明していただければ、より詳細な情報を提供できる可能性があります。

つまり、これが実際に使用したい関数である場合は、getWhite の戻り値もテストする必要があります。ドキュメントでは、戻り値について次のように言及しています。

色を変換できる場合は YES、そうでない場合は NO。

于 2013-01-07T18:32:42.353 に答える