ColorオブジェクトとARGB値の変換のあれこれ
Hex形式のARGB値をColorオブジェクトへ変換する
#FFFF9900 という形式の色をColorオブジェクトへ変換するメソッドを用意します。
public Color getColorFromHexString(string s) { byte a = System.Convert.ToByte(s.Substring(0, 2), 16); byte r = System.Convert.ToByte(s.Substring(2, 2), 16); byte g = System.Convert.ToByte(s.Substring(4, 2), 16); byte b = System.Convert.ToByte(s.Substring(6, 2), 16); return Color.FromArgb(a, r, g, b); }
実際にこのメソッドの使い方は、以下の通りです。
var hexString = "#FFFF9900"; // #を削ってからgetColorFromHexStringメソッドへ渡す var color = getColorFromHexString(hexString.Substring(1, 8));
ColorオブジェクトからHex形式のARGB値へ変換する
var color = Colors.Blue; var hexString = color.ToString();
ColorオブジェクトからInteger型のARGB値へ変換する
var color = Colors.Blue; int intColor = color.A << 24 | color.R << 16 | color.G << 8 | color.B;
Integer型のARGB値からColorオブジェクトへ変換する
int intColor = 4278190335; var color = Color.FromArgb((byte)((intColor >> 24) & 0xff), (byte)((intColor >> 16) & 0xff), (byte)((intColor >> 8) & 0xff), (byte)(intColor & 0xff));