c# console.consolecolor from rgb code example

Example 1: c# hex to console color

public static ConsoleColor FromHex(string hex)
    {
        int argb = Int32.Parse(hex.Replace("#", ""), NumberStyles.HexNumber);
        Color c = Color.FromArgb(argb);
        
        int index = (c.R > 128 | c.G > 128 | c.B > 128) ? 8 : 0; // Bright bit
        index |= (c.R > 64) ? 4 : 0; // Red bit
        index |= (c.G > 64) ? 2 : 0; // Green bit
        index |= (c.B > 64) ? 1 : 0; // Blue bit
        
        return (System.ConsoleColor)index;
    }

Example 2: 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;
        }
    }