I've got a color from user in #RRGGBB hex format (#D3D3D3 is light grey) and I'd like to color some output with it. I imagine I write print("some text", color="#0000FF") and get blue colored output. Is it possible (ideally without 3rd party software)?
            Asked
            
        
        
            Active
            
        
            Viewed 6,682 times
        
    3
            
            
         
    
    
        M. Volf
        
- 1,259
- 11
- 29
- 
                    2Possible duplicate of [How do I print colored output to the terminal in Python?](https://stackoverflow.com/questions/37340049/how-do-i-print-colored-output-to-the-terminal-in-python) – Arpit Solanki Aug 20 '17 at 13:42
- 
                    It depends. Truecolor ansi escapes are supported by some Unix/Linux terminal emulators. Where are you needing these? – Antti Haapala -- Слава Україні Aug 20 '17 at 13:45
- 
                    @AnttiHaapala I'm working on program that gets photo and prints it as ASCII art. Using Ubuntu. – M. Volf Aug 20 '17 at 13:54
- 
                    Possible duplicate of [Print in terminal with colors using Python?](https://stackoverflow.com/questions/287871/print-in-terminal-with-colors-using-python) – wwii Aug 20 '17 at 14:10
1 Answers
9
            You can use the following escape sequences on a true-color aware terminal:
- ESC[ … 38;2;<r>;<g>;<b> … mSelect RGB foreground color
- ESC[ … 48;2;<r>;<g>;<b> … mSelect RGB background color
Thus you can write a function:
RESET = '\033[0m'
def get_color_escape(r, g, b, background=False):
    return '\033[{};2;{};{};{}m'.format(48 if background else 38, r, g, b)
and use this like:
print(get_color_escape(255, 128, 0) 
      + get_color_escape(80, 30, 60, True)
      + 'Fancy colors!' 
      + RESET)
You can get doubled horizontal or vertical resolution by using for example ▀ and both background and foreground colour.
 
    
    
        Antti Haapala -- Слава Україні
        
- 129,958
- 22
- 279
- 321
- 
                    Not working for me, but it looks like I don't have _true-color aware terminal_ (LXTerminal). Will try it in somewhere else and then maybe accept answer. Btw. this is good test of your terminal: https://askubuntu.com/a/790991 – M. Volf Aug 21 '17 at 09:41