ASP.NET Color Picker - Knowledge Base

« Back to Knowledge Base list

Get color name

Q:

Is there any function to get the color title(name) via C#?

A:

You can use the following function:

public string ColorName(string hexStringColor)
{
   string str = hexStringColor;
   if (str.IndexOf('#') == 0)
   {
      str = str.Substring(1);
      UInt32 rgb = UInt32.Parse(str, NumberStyles.HexNumber); 
      Color color = Color.FromArgb((int)rgb); 

      System.Array colorsArray = Enum.GetValues(typeof(KnownColor));
      KnownColor[] allColors = new KnownColor[colorsArray.Length];
      Array.Copy(colorsArray, allColors, colorsArray.Length);
      for (int i = 0; i < allColors.Length; i++)
      {
         KnownColor kc = allColors[i];
         Color newColor = Color.FromKnownColor(kc);
         if (newColor.R == color.R && newColor.G == color.G && newColor.B == color.B)
         {
            return newColor.Name;
         }
      }
   }
   return hexStringColor;
}