2011-06-23 10 views
3

私はC#で色のRGB値を取得する必要があります。私は定義済みのKnownColors列挙型を使用しようとしていますが、値を取得する方法を理解することはできません。C#色の値から名前

助けが必要ですか?

ありがとうございます。

答えて

3

Colorクラスは、いくつかの興味深い静的メソッドがあります。それに

Color.FromName ("Red").ToArgb() 

次へ]を、のようないくつかのプロパティがあります。

var c = Color.FromName ("Red"); // Or use Color.FromKnownColor (KnownColor.Red) 

Console.WriteLine (String.Format ("RGB: {0} {1} {2}", c.R, c.G, c.B); 
+1

FromKnownColor more彼はそれが彼が使っていることだと言っているからです。 –

4

使用FromKnownColor

Color blue = Color.FromKnownColor(KnownColor.Blue); 

その後blue.Rblue.GとRGB値についてblue.B


それとも、あなただけのRGBカラーのint値をしたい場合は、あなたが行うことができます:

int blueRgb = Color.FromKnownColor(KnownColor.Blue).ToArgb(); 
+0

Toargbは、32ビットintを返します。編集:私は思っていません。 –

+0

@George Duckett:そうだよ、私はそれを複雑にするだろう:) – Town

+0

問題は文字列に色の名前があることです – baruch

3

使用Color.FromKnownColorそしてColor.RColor.GColor.Bを使用してRGB値にアクセスします。

-1
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red"); 
1
Color clr = FromKnownColor(System.Drawing.KnownColor.Blue); 
string.Format("R:{0}, G:{1}, B:{2}" clr.R, clr.G, clr.B); 

チェックはこのOut

1

enter code hereあなたが

int r = Color.FromName("Purple").ToArgb(); 
    //Or 
    int r1 = Color.FromKnownColor(KnownColor.Purple).ToArgb(); 

を行うことができColor.FromNameとColor.FromKnownColorはColorオブジェクトを返しwitll、あなたがそれを望むならば、それはRedGreenBlueコンポーネントのプロパティを持っています。

関連する問題