Python package that converts images into ASCII representation for terminals supporting TrueColor
only.
This project is inspired by another similar project ASCII_Magic. ASCII_Magic
is a great choice if you still want ASCII representation on termninals not supporting TrueColor.
TrueColor
means that your terminal can display 24 bits colors (full RGB space).
To check if your current terminal supports TrueColor
, please check out this excellent resource.
pip install ascii_wizard
import ascii_wizard
import os
img = ascii_wizard.AsciiWizard("doraemon.jpg")
img.colored(150, 2.2, None, None, True)
Initialize the object using the default constructor.
ascii_wizard.AsciiWizard(
path: str
)
where path
is a PIL-compatible file, such as a .jpeg
or .png
file. See the documentation of PIL for other image formats.
Convert an image into ASCII representation but with no color (basically a grayscale image).
grayscale(
columns: int = 120,
width_ratio: float = 2.2,
char: str = None,
background: tuple = None,
to_terminal: bool = True
) -> str
The method returns the ASCII representation (without color) of the image initialized using the constructor above.
columns (optional)
: the number of characters per row, the more columns the bigger the ASCII image.width_ratio (optional)
: ASCII characters are not squares, so this adjusts the width to height ratio.char (optional)
: instead of using the built-in ASCII Character Ramp, you can use a single character like#
.background (optional)
: specify the background of the image with a tuple(r, g, b)
wherer
,g
,b
respectively are the RGB value of the background color.to_terminal
: choose to print the ASCII image to the terminal
With background color
img = ascii_wizard.AsciiWizard("elephant.jpg")
img.grayscale(150, 2.2, None, (0, 255, 255), True)
Without background color
img = ascii_wizard.AsciiWizard("elephant.jpg")
img.grayscale(150, 2.2, None, None, True)
Convert an image into ASCII representation in true color.
colored(
columns: int = 120,
width_ratio: float = 2.2,
char: str = None,
background: tuple = None,
to_terminal: bool = True
) -> str
The method returns the ASCII representation (with color) of the image initialized using the constructor above.
columns (optional)
: the number of characters per row, the more columns the bigger the ASCII image.width_ratio (optional)
: ASCII characters are not squares, so this adjusts the width to height ratio.char (optional)
: instead of using the built-in ASCII Character Ramp, you can use a single character like#
.background (optional)
: specify the background of the image with a tuple(r, g, b)
wherer
,g
,b
respectively are the RGB value of the background color.to_terminal
: choose to print the ASCII image to the terminal
img = ascii_wizard.AsciiWizard("chuamotcot.jpg")
img.colored(200, 2.2, None, None, True)