using System.Collections.Generic;
private static Dictionary<int, string> KnownColorsCache;
public static void Main()
Console.WriteLine("Color Names to argb:");
Console.WriteLine("White in Argb is: " + Color.White.ToArgb());
Console.WriteLine("Red in Argb is: " + Color.Red.ToArgb());
Console.WriteLine("Black in Argb is: " + Color.Black.ToArgb());
int[] argbColors = new int[8] {-1, -4144960, -8323328, -16744320, -13072560, -15375337, -19533, -32704};
Console.WriteLine("Argb To Color Names:");
foreach (var argb in argbColors)
Console.WriteLine("{0} From Argb is: {1}", argb, GetColorName(argb));
private static void BuildColorCache()
Console.WriteLine("Building Cache...\n");
KnownColorsCache = new Dictionary<int, string>();
foreach (KnownColor kc in Enum.GetValues(typeof (KnownColor)))
Color known = Color.FromKnownColor(kc);
KnownColorsCache[known.ToArgb()] = known.Name;
public static string GetColorName(int argb)
if (KnownColorsCache.ContainsKey(argb))
return KnownColorsCache[argb];