Display Images on Terminal using Python - GeeksforGeeks

04 Jul, 2021
In this article, we will discuss how to display images on a terminal using Python. We will be using the climage module for the same. This module has the following features – 
It helps to convert images to its ANSI Escape Codes to be able to convert be printable on Command-Line Interfaces.
It allows 8/16/256 bit color codings for vivid images.
It provides ASCII/Unicode support for more detail and adjustable pallets for different terminal themes
This module does not come built-in with Python. To install this type the below command in the terminal.
pip install climage
After the installation, the next step is to import convert() and to_file() functions, where the former performs the task of conversion and the latter performs the task of conversion and saving to the output file if needed.
Syntax:
convert(filename, is_unicode=False, is_truecolor=False, is_256color=True, is_16color=False, is_8color=False, width=80, palette=”default”)
Parameters:filename : Name of image file.is_unicode :  If true, conversion is done in unicode format, otherwise ASCII characters will be used.is_truecolor :  Whether to use RGB colors in generation, if supported by terminal. Defaults False.is_256color : Whether to use 256 colors encoding. Defaults True.is_16color : Whether to use 16 colors encoding. Defaults False.is_8color : Whether to use first 8 System colors. Defaults False.width : Number of blocks of console to be used. Defaults to 80.palette : Sets mapping of RGB colors scheme to system colors. Options are : [“default”, “xterm”, “linuxconsole”, “solarized”, “rxvt”, “tango”, “gruvbox”, “gruvboxdark”]. Default is “default”. 
to_file(infile, outfile, is_unicode=False, is_truecolor=False, is_256color=True, is_16color=False, is_8color=False, width=80, palette=”default”)
Parameters:infile : The name/path of image file.outfile :   File in which to store ANSI encoded string.
Example 1: Printing on Terminal
Image Used:
Python3
import climage  # converts the image to print in terminal# inform of ANSI Escape codesoutput = climage.convert('banana.png')  # prints output on console.print(output)
Output : 
Example 2: Saving Encoding to file. 
Python3
import climage  # saves the converted encoded string# to banana_ansi file.output = climage.to_file('banana.png', 'banana_ansi')
Output :  
u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[48;5;15m  u001b[0m ...
Example 3: Working using command line 
A similar function can also be used to work with the command line using similar constructs, parameters explained in previous part.
Syntax : 
climage [-h] [-v] [–unicode | –ascii] [–truecolor | –256color | –16color | –8color] [–palette {default,xterm,linuxconsole,solarized,rxvt,tango,gruvbox,gruvboxdark}] [-w width] [-o outfile] inputfile
Working:
Example 4: Custom examples using command line 
Below example show working with customized examples setting different possible parameters. 
Example 5: Custom examples using Python code. 
Extending to previous part, this section shows how custom parameters can be used from the code to construct different images.
Python3
import climage  # converts the image to print in terminal# with 8 color encoding and palette tangooutput = climage.convert('banana.png', is_8color=True,                          palette='tango', is_256color=False)  # prints output on console.print(output)
Output: 
python-modules
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Check if element exists in list in Python
How To Convert Python Dictionary To JSON?
How to drop one or multiple columns in Pandas Dataframe
Python Classes and Objects
Python | os.path.join() method
Python | Pandas dataframe.groupby()
Create a directory in Python
Defaultdict in Python
Python | Get unique values from a list