c# rgb to consolecolor code example
Example 1: 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;
}
}
Example 2: rgb to console color
int index = (c.R > 128 | c.G > 128 | c.B > 128) ? 8 : 0;
index |= (c.R > 64) ? 4 : 0;
index |= (c.G > 64) ? 2 : 0;
index |= (c.B > 64) ? 1 : 0;
Console.ForegroundColor = (System.ConsoleColor)index;