Table of contents
- Overview
- Installation
- Usage
- Issues & Bug Reports
- Dependencies
- Contribution
- Reference
- Authors
- License
- Donate
- Changelog
- Code of Conduct
Overview
ASCII art is also known as "computer text art". It involves the smart placement of typed special characters or letters to make a visual shape that is spread over multiple lines of text.
ART is a Python lib for text converting to ASCII art fancy. ;-)
| Open Hub | ![]() |
| PyPI Counter | |
| Github Stars | |
| Font Counter | 560 |
| 1-Line-Art Counter | 499 |
| Decor Counter | 195 |
| Branch | master | dev |
| Travis | ||
| AppVeyor |
| Code Quality |
Usage
1-Line art
1. art
This function return 1-line art as str in normal mode and raise artError in exception.
>>> from art import *
>>> art_1=art("coffee") # return art as str in normal mode
>>> print(art_1)
c[_]
>>> art_2=art("woman",number=2) # return multiple art as str
>>> print(art_2)
ââ_ââ ââ_ââ
>>> art("random") # random 1-line art mode
'(ã?£ââ¿â)ã?£ '
>>> art("rand") # random 1-line art mode
't(-_-t) '
>>> art(22,number=1) # raise artError
Traceback (most recent call last):
...
art.art.artError: The 'artname' type must be str.
2. aprint
This function print 1-line art in normal mode (return None) and raise artError in exception.
>>> aprint("butterfly") # print art
Ƹ̵̡ÓÌµÌ¨ÌÆ·
>>> aprint("happy") # print art
Û\(ï?Úºï?Ù` )/Û
>>> aprint("random") # random 1-line art mode
'(ã?£ââ¿â)ã?£ '
>>> aprint("rand") # random 1-line art mode
't(-_-t) '
>>> aprint("woman",number="22") # raise artError
Traceback (most recent call last):
...
art.art.artError: The 'number' type must be int.3. randart
randart function is added in Version 2.2 as art("random") shortcut.
>>> randart()
'áá?ââá½ â¬â¹âÊáá¬á?á½ '
>>> randart()
'â(ââ¿-)â '- Note1 : Use
ART_NAMESto access all arts name list (new inVersion 4.2) - Note2 : Use
NON_ASCII_ARTSto access all Non-ASCII arts name list (new inVersion 4.6)
ASCII text
Version 3.3 Non-ASCII fonts added (These fonts are not compatible with some environments)
1. text2art
This function return ASCII text as str in normal mode and raise artError in exception.
>>> Art=text2art("art") # Return ASCII text (default font) and default chr_ignore=True
>>> print(Art)
_
__ _ _ __ | |_
/ _` || '__|| __|
| (_| || | | |_
\__,_||_| \__|
>>> Art=text2art("art",font='block',chr_ignore=True) # Return ASCII text with block font
>>> print(Art)
.----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. |
| | __ | || | _______ | || | _________ | |
| | / \ | || | |_ __ \ | || | | _ _ | | |
| | / /\ \ | || | | |__) | | || | |_/ | | \_| | |
| | / ____ \ | || | | __ / | || | | | | |
| | _/ / \ \_ | || | _| | \ \_ | || | _| |_ | |
| ||____| |____|| || | |____| |___| | || | |_____| | |
| | | || | | || | | |
| '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------'
>>> Art=text2art("test","random") # random font mode
>>> print(Art)
| |
~|~/~/(~~|~
| \/__) |
>>> Art=text2art("test","rand") # random font mode
>>> print(Art)
___ ____ ____ ___
| |___ [__ |
| |___ ___] |
>>> print(text2art('''Lorem
ipsum
dolor''', font="small")) # Multi-line print
_
| | ___ _ _ ___ _ __
| |__ / _ \| '_|/ -_)| ' \
|____|\___/|_| \___||_|_|_|
_
(_) _ __ ___ _ _ _ __
| || '_ \(_-<| || || ' \
|_|| .__//__/ \_,_||_|_|_|
|_|
_ _
__| | ___ | | ___ _ _
/ _` |/ _ \| |/ _ \| '_|
\__,_|\___/|_|\___/|_|
>>> print(text2art("test","white_bubble")) # Non-ASCII font example
â£ââ¢â£
>>> text2art("art",font="fancy5",decoration="barcode1") # decoration parameter is added in Version 4.6
'ââââââââ á?á?á? ââââââââ'
>>> text2art("seسسس",font=DEFAULT_FONT,chr_ignore=False) # raise artError in exception
Traceback (most recent call last):
...
art.art.artError: س is invalid.
2. tprint
This function print ASCII text in normal mode (return None) and raise artError in exception.
>>> tprint("art") # print ASCII text (default font)
_
__ _ _ __ | |_
/ _` || '__|| __|
| (_| || | | |_
\__,_||_| \__|
>>> tprint("art",font="block",chr_ignore=True) # print ASCII text (block font)
.----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. |
| | __ | || | _______ | || | _________ | |
| | / \ | || | |_ __ \ | || | | _ _ | | |
| | / /\ \ | || | | |__) | | || | |_/ | | \_| | |
| | / ____ \ | || | | __ / | || | | | | |
| | _/ / \ \_ | || | _| | \ \_ | || | _| |_ | |
| ||____| |____|| || | |____| |___| | || | |_____| | |
| | | || | | || | | |
| '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------'
>>> tprint('testسس') # chr_ignore flag ==True (Default)
_ _
| |_ ___ ___ | |_
| __| / _ \/ __|| __|
| |_ | __/\__ \| |_
\__| \___||___/ \__|
>>> tprint("test","random") # random font mode
| |
~|~/~/(~~|~
| \/__) |
>>> tprint("test","rand") # random font mode
___ ____ ____ ___
| |___ [__ |
| |___ ___] |
>>> tprint('testسس',chr_ignore=False) # raise artError in exception
Traceback (most recent call last):
...
art.art.artError: س is invalid.
>>> tprint('''Lorem
ipsum
dolor''', font="cybermedium") # Multi-line print
_ ____ ____ ____ _ _
| | | |__/ |___ |\/|
|___ |__| | \ |___ | |
_ ___ ____ _ _ _ _
| |__] [__ | | |\/|
| | ___] |__| | |
___ ____ _ ____ ____
| \ | | | | | |__/
|__/ |__| |___ |__| | \
>>> tprint("art",font="fancy5",decoration="barcode1") # decoration parameter is added in Version 4.6
ââââââââ á?á?á? ââââââââ3. tsave
This function return dict in normal and exception mode.
>>> Response=tsave("art",filename="test.txt") # save ASCII text in test.txt file with save message (print_status==True), return dict
Saved!
Filename: test.txt
>>> Response["Message"]
'OK'
>>> Response=tsave("art",filename="test.txt",print_status=False) # save ASCII text in test.txt file without save message (print_status==False)
>>> Response["Message"]
'OK'
>>> Response["Status"]
True
>>> tsave(22,font=DEFAULT_FONT,filename="art",chr_ignore=True,print_status=True)
{'Status': False, 'Message': "'int' object has no attribute 'split'"}
>>> Response=tsave("art",filename="test.txt",overwrite=True) # overwrite parameter is added in Version 4.0
Saved!
Filename: test.txt
>>> Response=tsave("art",filename="test.txt",decoration="barcode1") # decoration parameter is added in Version 4.6
Saved!
Filename: test.txt
- Note1 : Use
FONT_NAMESto access all fonts name list (new inVersion 4.2) - Note2 : Use
NON_ASCII_FONTSto access all Non-ASCII fonts name list (new inVersion 4.4)
Decoration
1. decor
This function return decoration as str in normal mode and raise artError in exception.
>>> decor("barcode1")
'ââââââââ '
>>> decor("barcode1",reverse=True)
' ââââââââ'
>>> decor("barcode1") + text2art(" art ",font="fancy42") + decor("barcode1",reverse=True)
'ââââââââ Ä
Ñ?Å£ ââââââââ'
>>> decor(None)
Traceback (most recent call last):
...
art.art.artError: The 'decoration' type must be str.- Note : Use
DECORATION_NAMESto access all decorations name list (new inVersion 4.6)
Font modes
These modes are available for text2art, tprint & tsave.
1. Font name
>>> tprint("art",font="block",chr_ignore=True)
.----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. |
| | __ | || | _______ | || | _________ | |
| | / \ | || | |_ __ \ | || | | _ _ | | |
| | / /\ \ | || | | |__) | | || | |_/ | | \_| | |
| | / ____ \ | || | | __ / | || | | | | |
| | _/ / \ \_ | || | _| | \ \_ | || | _| |_ | |
| ||____| |____|| || | |____| |___| | || | |_____| | |
| | | || | | || | | |
| '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------'
>>> tprint("art","white_bubble")
â?â¡â£
2. Random
Randomly select from all fonts.
Keywords : random, rand & rnd
>>> tprint("test",font="random")
| |
~|~/~/(~~|~
| \/__) |
3. Random small
Randomly select from small fonts.
Keywords : rnd-small, random-small & rand-small
- Note : New in
Version 2.8
>>> tprint("test",font="rnd-small")
_/ _ _ _/
/ (- _) /
4. Random medium
Randomly select from medium fonts.
Keywords : rnd-medium, random-medium & rand-medium
- Note : New in
Version 2.8
>>> tprint("test",font="rnd-medium")
, ,
|| ||
=||= _-_ _-_, =||=
|| || \\ ||_. ||
|| ||/ ~ || ||
\\, \\,/ ,-_- \\,
5. Random large
Randomly select from large fonts.
Keywords : rnd-large, random-large & rand-large
- Note : New in
Version 2.8
>>> tprint("test",font="rnd-large")
8888888 8888888888 8 8888888888 d888888o. 8888888 8888888888
8 8888 8 8888 .`8888:' `88. 8 8888
8 8888 8 8888 8.`8888. Y8 8 8888
8 8888 8 8888 `8.`8888. 8 8888
8 8888 8 888888888888 `8.`8888. 8 8888
8 8888 8 8888 `8.`8888. 8 8888
8 8888 8 8888 `8.`8888. 8 8888
8 8888 8 8888 8b `8.`8888. 8 8888
8 8888 8 8888 `8b. ;8.`8888 8 8888
8 8888 8 888888888888 `Y8888P ,88P' 8 8888
6. Random xlarge
Randomly select from xlarge fonts.
Keywords : rnd-xlarge, random-xlarge & rand-xlarge
- Note : New in
Version 2.8
>>> tprint("test","rnd-xlarge")
_____ _____ _____ _____
/\ \ /\ \ /\ \ /\ \
/::\ \ /::\ \ /::\ \ /::\ \
\:::\ \ /::::\ \ /::::\ \ \:::\ \
\:::\ \ /::::::\ \ /::::::\ \ \:::\ \
\:::\ \ /:::/\:::\ \ /:::/\:::\ \ \:::\ \
\:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ \:::\ \
/::::\ \ /::::\ \:::\ \ \:::\ \:::\ \ /::::\ \
/::::::\ \ /::::::\ \:::\ \ ___\:::\ \:::\ \ /::::::\ \
/:::/\:::\ \ /:::/\:::\ \:::\ \ /\ \:::\ \:::\ \ /:::/\:::\ \
/:::/ \:::\____\/:::/__\:::\ \:::\____\/::\ \:::\ \:::\____\ /:::/ \:::\____\
/:::/ \::/ /\:::\ \:::\ \::/ /\:::\ \:::\ \::/ / /:::/ \::/ /
/:::/ / \/____/ \:::\ \:::\ \/____/ \:::\ \:::\ \/____/ /:::/ / \/____/
/:::/ / \:::\ \:::\ \ \:::\ \:::\ \ /:::/ /
/:::/ / \:::\ \:::\____\ \:::\ \:::\____\ /:::/ /
\::/ / \:::\ \::/ / \:::\ /:::/ / \::/ /
\/____/ \:::\ \/____/ \:::\/:::/ / \/____/
\:::\ \ \::::::/ /
\:::\____\ \::::/ /
\::/ / \::/ /
\/____/ \/____/
7. Wizard
This mode consider length of input text to select font
Keywords : wizard, wiz & magic
- Note : New in
Version 2.9
>>> tprint("1","wizard")
88
,d88
888888
88
88
88
88
88
88
88
>>> tprint("1"*5,"wizard")
d88 d88 d88 d88 d88
88 88 88 88 88
88 88 88 88 88
88 88 88 88 88
88 88 88 88 88
d88P d88P d88P d88P d88P
>>> tprint("1"*15,"wizard")
# # # # # # # # # # # # # # #
## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
# # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #
## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
8. Random Non-ASCII
Randomly select from Non-ASCII fonts.
Keywords : random-na, rand-na & rnd-na
- Note : New in
Version 3.4
>>> tprint("test","random-na")
â®Éâ´â®
>>> tprint("test","random-na")
ÊsÇ?Ê
9. Mix Non-ASCII
Randomly mix Non-ASCII fonts.
Keywords : mix
- Note : New in
Version 3.7
>>> tprint("test","mix")
â Æ?Ñâ
>>> tprint("test","mix")
tá?Ñt
>>> tprint("test","mix")
êÑรêFont name, Random Non-ASCII and Mix modes
Typo-tolerance
Levenshtein distance used in this project. (Version >0.9)
>>> aprint("happi") # correct --> aprint("happy"), error < |artname|/2
Û\(ï?Úºï?Ù` )/Û
>>> Art=art("birds2222222",number=1) # correct --> Art=art("birds",number=1), error >= |artname|/2
Traceback (most recent call last):
...
art.art.artError: Invalid art name.
>>> aprint("happi231") # correct --> aprint("happy"), error < |artname|/2
â¦Ëâ¡Ëâ£
>>> aprint("happi2312344") # correct --> aprint("happy"), error >= |artname|/2
Traceback (most recent call last):
...
art.art.artError: Invalid art name.
>>> Art=text2art("test",font="black") # correct --> Art=text2art("test",font="block")
>>> print(Art)
.----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. |
| | _________ | || | _________ | || | _______ | || | _________ | |
| | | _ _ | | || | |_ ___ | | || | / ___ | | || | | _ _ | | |
| | |_/ | | \_| | || | | |_ \_| | || | | (__ \_| | || | |_/ | | \_| | |
| | | | | || | | _| _ | || | '.___`-. | || | | | | |
| | _| |_ | || | _| |___/ | | || | |`\____) | | || | _| |_ | |
| | |_____| | || | |_________| | || | |_______.' | || | |_____| | |
| | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------'
>>> tprint("test",font="cybermedum") # correct --> tprint("test",font="cybermedium")
___ ____ ____ ___
| |___ [__ |
| |___ ___] |
Set defaults
set_default function is added in Version 2.2 in order to change default values.
>>> help(set_default)
Help on function set_default in module art.art:
set_default(font='standard', chr_ignore=True, filename='art', print_status=True, overwrite=False, decoration=None)
Change text2art, tprint and tsave default values.
:param font: input font
:type font:str
:param chr_ignore: ignore not supported character
:type chr_ignore:bool
:param filename: output file name (only tsave)
:type filename:str
:param print_status : save message print flag (only tsave)
:type print_status:bool
:param overwrite : overwrite the saved file if true (only tsave)
:type overwrite:bool
:param decoration: input decoration
:type decoration:str
:return: None
>>> tprint("test")
_ _
| |_ ___ ___ | |_
| __| / _ \/ __|| __|
| |_ | __/\__ \| |_
\__| \___||___/ \__|
>>> set_default(font="italic")
>>> tprint("test")
_/ _ _ _/
/ (- _) /
-
Note : Functions error response updated in
Version 0.8Function Normal Output Error decor str raise artError art str raise artError aprint None raise artError tprint None raise artError tsave {"Status":bool,"Message":str} {"Status":bool,"Message":str} text2art str raise artError set_default None raise artError
Testing
- Only ASCII fonts and arts :
python -m art test
- All fonts, arts and decorations :
python -m art test2
CLI
- List of arts :
python -m art listorpython -m art arts - List of fonts :
python -m art fonts - Text :
python -m art text yourtext fontname(optional) - Art :
python -m art shape art_nameorpython -m art art art_name - Save :
python -m art save yourtext fontname(optional) - All :
python -m art all yourtext
Telegram bot
Just send your text to one of these bots.
Try ART in your browser
ART can be used online in interactive Jupyter Notebooks via the Binder service! Try it out now! :
- Open
FontList.ipynb,ArtList.ipynbandDecorList.ipynb - Edit and execute each part of the notes, step by step from the top panel by run button
Screen record
- View full font list (Link1,Link2)
- View full art list (Link1,Link2)
- View full decoration list (Link1,Link2)
Issues & bug reports
Just fill an issue and describe it. I'll check it ASAP! or send an email to [email protected].
- Please complete the issue template
Dependencies
| master | dev |
License
Reference
- FIGlet
- 1 Line Art
- Text To ASCII
- ASCII Generator
- Asky
- Flipyourtext
- YayText
- Coolletters
- Instagram Fonts
- Cool Symbol
- ASCII Moji
- SMILEY COOL
- SPREZZ
- Textart4u
- Chat4o
- Findwebapp
- Hubpages
- ASCII-ART
- Messletters
- Webestools
Donate to our project
Bitcoin :
12Xm1qL4MXYWiY9sRMoa3VpfTfw6su3vNq





