1

ユーザーに色 (白、赤など) を入力してもらいましたが、ユーザーが指定した色で R、G、B の値を取得するにはどうすればよいですか?

ノードの色を設定する関数(float r、float g、float b)があります。したがって、ユーザーに必要な色の名前を入力させてから、その色の名前を変換して、関数の r、g、b 値を取得したいと考えています。

4

3 に答える 3

3

Color は、基本的な色を表す限られた数の列挙型を定義します。このコードの抜粋では、リフレクションを使用して名前から RGB 表現にマッピングしています。

それ以外には、色/RGB 値のマップ、または場合によってはシステム プロパティのセットを維持し、Color.getColor(String name)を使用する必要があります。

于 2012-07-31T08:43:29.930 に答える
1

すべてのオプションの色を RGB 表現とともに文字列として含む Map を作成します (記録のために、Color は java.awt パッケージにあります)。

Map<String,Color> colorMap = new HashMap<String,Color>();
        colorMap.put("white", new Color(255,255,255));
        colorMap.put("red", new Color(255,0,0));

次に、ユーザーが入力したテキストを使用して、マップで色を検索します。

String userColor = <whereever you get your string from>;
Color result = colorMap.get(userColor.toLowerCase());

最後に、RGB の int 値を持つこの Color オブジェクトを使用して、必要な float 値を取得し、それらを関数に渡します。

yourFunction(Float.valueOf(result.getRed(),Float.valueOf(result.getGreen()),Float.valueOf(result.getBlue()));

可能であれば、RGB に float の代わりに整数を使用することをお勧めします。すべての場合ではないにしても、ほとんどの場合、整数で 0 から 255 の範囲になるためです。

RGB で必要なすべての色を入手するのに適した場所は、次の Web サイトです: http://cloford.com/resources/colours/500col.htm

于 2012-07-31T10:07:35.627 に答える
0

色を文字列として持っている場合は、Colorこれをマップで検索すると、赤、緑、青の値が得られます。

于 2012-07-31T08:41:51.627 に答える