如何将其转换hexa code = #2088C1 为蓝色或红色之类的颜色名称
hexa code = #2088C1
我的目标是为给定的十六进制代码获取类似“蓝色”的颜色名称
我试过下面的代码,但没有给出任何颜色名称..
System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#2088C1"); Color col = ColorConverter.ConvertFromString("#2088C1") as Color;
但它没有给出这样的颜色名称“ aquablue”
我正在C#中使用Winforms应用程序
我偶然发现了一个德国网站,该网站完全可以满足您的需求:
/// <summary> /// Gets the System.Drawing.Color object from hex string. /// </summary> /// <param name="hexString">The hex string.</param> /// <returns></returns> private System.Drawing.Color GetSystemDrawingColorFromHexString(string hexString) { if (!System.Text.RegularExpressions.Regex.IsMatch(hexString, @"[#]([0-9]|[a-f]|[A-F]){6}\b")) throw new ArgumentException(); int red = int.Parse(hexString.Substring(1, 2), NumberStyles.HexNumber); int green = int.Parse(hexString.Substring(3, 2), NumberStyles.HexNumber); int blue = int.Parse(hexString.Substring(5, 2), NumberStyles.HexNumber); return Color.FromArgb(red, green, blue); }
要获得颜色名称,可以按以下方式使用它来获得KnownColor:
private KnownColor GetColor(string colorCode) { Color color = GetSystemDrawingColorFromHexString(colorCode); return color.GetKnownColor(); }
但是,System.Color.GetKnownColor似乎在.NET的较新版本中已删除
System.Color.GetKnownColor