c# rgb to consolecolor
// Console.ForegroundColor = RGBToConsoleColor(c);
public ConsoleColor RGBToConsoleColor (Color color) {
if (color.GetSaturation () < 0.5)
switch ((int) (color.GetBrightness () * 3.5)) {
case 0:
return ConsoleColor.Black;
case 1:
return ConsoleColor.DarkGray;
case 2:
return ConsoleColor.Gray;
default:
return ConsoleColor.White;
}
var hue = (int) Math.Round (color.GetHue () / 60, MidpointRounding.AwayFromZero);
if (color.GetBrightness () < 0.4)
switch (hue) {
case 1:
return ConsoleColor.DarkYellow;
case 2:
return ConsoleColor.DarkGreen;
case 3:
return ConsoleColor.DarkCyan;
case 4:
return ConsoleColor.DarkBlue;
case 5:
return ConsoleColor.DarkMagenta;
default:
return ConsoleColor.DarkRed;
}
switch (hue) {
case 1:
return ConsoleColor.Yellow;
case 2:
return ConsoleColor.Green;
case 3:
return ConsoleColor.Cyan;
case 4:
return ConsoleColor.Blue;
case 5:
return ConsoleColor.Magenta;
default:
return ConsoleColor.Red;
}
}