Convert images into ASCII art!
###H22223449%@@@@@@@@g8800%0@@@@@@@@@@@ggg000%%%%88$8$888$8%00gggg@@ggg08%%%88$66W680000gg00&W0@@@@62V4445Z5V9666WWWWW666W#23V23
%$$$8&WH2#9W66&800%$6W8ggg8%@@@@@@@@@g0%%888$$$&66WWWW9666W66666$$88888&&&$8%%%%$$&&8%00ggg0%66@@@@gHHWH22V{44{H&%%%8&6W99#2VH##
@g8H##V45{36&66666668gggg86%gg@@gg08$$&6666W99###999######H#HHHH#####99##W66$8%%%%%8$8%000%%%8&&g@@@&3266#2966HV296$%g@%&69WWWW9
W4Z6g%W{36%0%&6666&%gg0$6W&%000%&66666W99#####HHH222222VV223{Z]{V2HHH22V3VV2#W&$888$$&&$$88$$$8$680g0W3#9#600g%$$%00%%%8$6H3V#W9
1^H@@&W68g@@@@%&&886W#VH968%%8$&66WWW9###2222H22V3{{{{4445]T;*\5}Z]]}{33455{3V2H966&6666666666&&$$$8%$929&g@@@@@0$@@@@g&W###2{5}
\V8$96$%$$%0@@g8W2{{3299&8%%88&666WW9##HVV3{4{{444{{3{{}>*^;|;V3H#H{}1>1]>>>1}4V22HH#9999WWWWW9W66&888$6H68g@@@@@g&8@@@@g08$&625
$g8}}V69H3H6W92{V966666$%0%88$&6699#HHHV3{{4}ZZ}}}54{5\!!^T\]}6HV44}51>T*T\\\|>15VHH222H###9999#996&$$$$6W960@@@@@g&68gg@@@@g8W2
@g{|{$gg8H2#968g@ggg0%%%%%88$&6W9#HVVVVVV35}Z>|]]11>*,~,!*;\>]222V{{{}1|*[!*;T\|]}{V2222H22HHH#9W66666$$8%8&68g@@@@@%68@gg@@@@g$
g9>V6%gg%66&0@@@@@@g000%8$&&666W9#H22V33{5}1]>\|>>\,~~~~~[!^;T1]\;;|]Z5Z>;!,!!;\\>Z4VVVVVVV3VV2#9W66666$%000%&6$g@@@@068@@g&##96
95{H9g@@g0%g@@@@@@@0%$66666&&&6669#9#H345}>|TT;T\*~~~~~~~^|\|39W69V}\!,~!|1^,,!*T|]1}54{{333333VH#9WWWW6&8%%%8&66$0g@@09H96935ZZ
932H0@@@@@@@@@@@@@%&6W6$$$$$$&&&66#22V{4Z]>T^*!*[~~~~~~~,{25W@@gW{Z}{4T\!!!;!~~[!;>Z5544{3VVVV33V2H99999##W&$88$&666$80g8H11]}W0
&H6g@@@@ggg@00gg8&6W6&888$&&6666WW#23{{{5Z>\*!!~~~~~~~,;289]4}|>{6$W664\\||T^~~~~,!;\]4VVVV22222222#9WW#2HH966&8%%0000g@@@g&80&W
$$0@@@@g$9W$%0%8$&66$88$&6W##HHH2VVV{4444}>|T!~~~~~~~~~~!!~~[||Z\!^^![[!1}}551*~~~~[*\>1}55544{3V222V#99W9HHHH#96$0@@@@@@g%625}{
W$%@@g%62W92#&800%8%%%8$669H22VV3345Z111]|TT!_``_~~~~~~~`_~~~~~,!!!!~~~~,!;T|\|^,~~~~!T>1]]]1}43VVV3333V2###99999#96&&&66H3H68%6
68%086H2&$%$6W68%%0%88$&W#H2V2V34}Z1Z1]]|\\;~```_~~~,!\296%g0$$%&$@@@8H|~~~~,!^T^^!!!!!!^*;\|>]Z55{322V3{{3VHW6&$$$$8$692#680@@@
$88$6#9&%0000%8&&88$&66W#H2V{45}1]]1]1>>>\;~~~!]VW98@@@@@@@@@@@g{#0@@@@@g63|!~~[;;^;;;*****;TT\>11Z}43V2H##HH##99W66$$$$&69W&$$&
6WW66&&8%0gggg%$66WW#H2HHH22V45Z11]\T;;^*!\260@@@@$W@@@@@@0g@@@$\{6@@@@@@@@@@$2;`~[T>11>>]]]>>|TTT;\|>1Z3#WWW9WWW666&$888%$66&88
&&&&66&$800gg0%8$66W99##HV{{3{4}}}Z1\^!!~H0$8g@@@@@6g@@@%&&66W$3;}9%@@@@@@@@@@@gW1~,|]1Z}4{{3351>\T||>]]1}{2996666WW6&888%%8&&6%
g%8$6666$%%000%%8$&&66WW9V{55ZZZ5555}\;*!@%&6$0@@@@@6%&!~}%%&9W1*|2%@%$@@@88@@@gg@8|*>]1}5{{{{VV4Z|\>]Z5454{VHH#9WW66&$8%%0000&W
@08$$$&&&$8%%%%88$&&666WW9H34}}554554}>T!#g$6##8@@@@66@8&@@@g%g$68$W600&%94@@@890@@W!T>ZZ11Z}5}}}Z]|\|>Z42#H#9999W66&&$8%0ggggg8
08$8%0%869#W&$8$$&666W9H2HH22{Z}}54455Z!~;3$$WH30@@@gVg69g@@@@@%6062g@@@6T$@@%*[|36;^*\]1>>>>}43{51|\]ZZ433{{332966666&88%0gg@@@
66$0gg08&9V{{H666W9##H#99##22V41||T![~~~*\|1H66;]2@@@#863&@@g@@$68#H@@@g>Z@@@3!*[,~!!^;\]11]>1]}{{}]>>]>>Z}5{3V332#9999W&80g@@@@
8%0g@@g%86W#V{32#WW9#HV{2HHV{5{4|;!,!!^^***;;\]T~~6@@%$g3$@@g@@&96Z6@@@#TWgg#\{664{V5\![!;|]]]]>>>1Z111ZZ]115{V2V3322HHH#W6$%0@@
gg@@gg@0%$&6#23{{V2HHH2{54{323}5|,~~~^}V2Z1\1#3*~Z|8@g$@6W@@@gg6H31800$]3%83|}268H4HHV5Z!~~~~!*\\>]Z1]1}{{{45}}43V22H##H222#6&80
ggggggg0%8&699##H22H#9WW#H2#HH}~``~~,;V$W5|\Z&&\[!1}&%&00$@@0344{T5>**!|$$5>Z52gg&H2V{W%6}T~~~_~;1}}*~*\||\>]1}42VVV22H#HH22#9WW
0%%00086W666W#HHHH##9W666699H1~~!~~!*;>#}T;T>9%5;;;ZH&69$0@@@@gH5*1]{|`42;>ZT^9gg%2T,!Hg@6H4;!![_*Z}Z;^^T\T**T|]}4{{3V2HH####9W6
g0g000%&WH22H2V33V332H96W#21~``~[,~~^5{5|T4{T4&WT;T>V3HVHW%g@@841]$$2[TH^,*~_~|%g82,_`[$@64]>\|[``~>{V{5>\TTT|>]1}53VV3V2#W6$888
0000000%$69V4}Z1>>>>1Z}}Z\~``~!\T[```*HHT|4]!>W6>>]1}4}5HW&W99{>;466]!|^~~~~~`_3996Z^~[#82]\||Z5>~``~\}Z43V3}ZZ1]1}43VHHW6&$$888
88888%88$&66692}\!,,[[[~````,;*T|;~``~,1>^*~~TW$3>>>>]||]V&93W>;;2#5[~~~~~!*~_`~5&$&H>5865|*>{3}|T!~``~>V99#2{5543334432##9WW9W6
8$$$$$$$$$&66W#};;!~~~````~^||*~**!~`~~``,|~~[5$#1\1Z1\!;TZ#H9!>12Z,~~_~~*>[~~~!W635}}V8VT*\;^![[!![~~`~|4V{2##H2##H233V2#9W9#9W
&6WWWW9##9W66V\~~*|*~`````~!^[~~~~~~`_~~~~[[~~!23Z5155Z*!;;T4^~T1}!~~~~~^*[^!;![;**TZV#}!![~~~~~*T|}Z;[~~!]1]}{32#99##V{3{V#9W6&
W9HH222HH###2Z>\|5Z\~`~![~~_`_~~~~!~~~!!~~~~~~~*V3}>|Z4>!^*|Z[~~[~~~`~~!,~~|2Z[~~[T>Z}]!~~~~~!*\}#$869V2Z!~!T\]}3H99##H23VH##W6$
WW###9WWWWW6WWW9H2T~~;]]Z|~_``````````_~____````~~~~~~~~~~~~~~_```````_~~``~~~__~~~~~~```~~TV6%g0$#}{H#4>*!~[T>13H##H2VV33V32H#6
6&66666W9HV32HHH3\_~~}{]\]]\!`_~~,,~~[[!!!!![~~~~~~~__``````_~~~~[~~~~~~~~~~~~~~~~~~~~~_``1%@@@@$3|T1Z|;|11Z|*\52HHHVH###H22##96
&$88%%$&941|\;;!,~,^\15341Z51~~~!;T;!^^![[[,~~~~~~~,~!![![,~~~~~!![[[,,[!~~~~~~~~[!!!!~~`,3@@@%929W#332V{2#H3]!}#W99#W666WW999##
&$88$8$$$693][~~*!,[!*T]ZZ]]1[~,^T|T*!![,[,~~~~~,!*!!;\\|T;*!^!!T^![[!!!!,~~~[,,[!!^*!~~~;39WHV2H9WW6#332V4{22Z\ZHW9#HW666W69#2H
6W6WW9W&&&63;|Z|;T5334>;*^^!!!~[^>|;^!*^!TT*!,,!\|\!^\>>>\;**^!!;;*[!,[!*^!^;*^^*!^!*^!,~|1{1{{96&6H11{4}5V#HH#V\!>3H#22H96&&&&6
$66666666#360@@@g6{H6WH41|\|]\~,*>|*![^*^;^!!!!;]\*^\\\;>|\;*^!;**^!!^[!*T|]>|;^;^![^;*[~}}2WWW6H4]*;|15{33{5}1\^~~^2W69V2W6$888
%8$$88$63{H{5}}539&$6WV52999H>[,^|\^!!^**!~[^T;;\T!*||T*>||\^^*>;T;;[!**!!^;;;*![,~!TT!~~T|>>Z332999W66W9##235}]1^~~;969H2H6%%%%
$888%$64>Z534Z>\T;*;|\!^53V2V>~~!\\;!!!;^,[^TT^!;;*\>|T;|\||*|>\\|\|;!***!!^**^[~~!;|*,~~;5V13@@@g8$$&6W#H#968%00%&V|1{2H96$%%%%
00%864}9&&W#688%&233Z!~T]]>>|^~~,*||**^![!^;T*****>]]\||\\>|T]>>||\||;;T*^^;*;>\^!\1>*~~~968#4ggW1*>6&$886553V29W6$&6#Z>#6&&8g08
008H|139W925]T]28g86V]4H##HV]~_~,\1|*^!!*||**\|T\||11||]|T1]\1]>1|>]>|;\|T*^^[;|\;;]1;~~~T^!^~!!,,,\V96&$&6##V{41{99HHH#{266&%0%
%$H|>}V992]^,~``~!>4999H3{5*[~`~!|1\!!,^|\**;\|\\]]]]]1Z1|]]Z4}ZZ1]]]>\T\|\;*!!**^\]|;,~~;T;[_~~~|43#6&&6#4]T!!*T|1V#23VH{V66$8%
6#\|596V>^^!~_``_~~~[ZH&$8V*\|`~!|\!,[!;T;;\|||\>>155}4{4Z>Z333}}1}5}ZZ]>|||T*!!**T>]\!~,]5{5;!!!!]}1]>|;*T\T;;|>||1{#WW34}9&88$
W53HW2];[[!^*~~!T;~~~~~!~_``~,`~!T;!!*;;\\\\|]ZZZ5V2V{43{45{V2V{{}4{{44ZZ1>|||;^*;;;||^~~T]ZZ]|^![!!!*;!!*\Z#WWW#V44}5H86V}#8%0%
636&#|>*]26{;1}T,~_~^3>~``````~!T|T!!!*\>>||>1}4VH9#HVV2222H#H##2VV333345}1]>>>T^*;*T\^~~`_~~~!14Z;!,,,!;||!TZV9WW#66926%&2H8ggg
&{$g}|Z6@$}\W5|*,~^#g&[```~~_`~^\\TT;;T>]]Z}5442#999999999#99H#9H######H2VV{5}1]|;**;*!~```_~~~~ZW8W}Z]1{VH9Z{5V66W98%&90g6#8g@@
%908H8@@#>Z#W{5|T}0@@%3,~~_~~_~!T\TT\>}55{2#H2HW66W666WW669WW99W#WWWW66W69###2{44Z>\;*!~```~~~~~H%@@669HWW%@&$&9H#H968880@%60ggg
pip install -r requirements.txt
usage: Image to ASCII [-h] [-i IMAGE] [-o OUTPUT] [-n NUM_COLS] [-c CHARACTERS]
options:
-h, --help show this help message and exit
-i IMAGE, --image IMAGE
input image
-o OUTPUT, --output OUTPUT
output text file (default: sys.stdout)
-n NUM_COLS, --num_cols NUM_COLS
number of character for output's width (default: maximum resolution)
-c CHARACTERS, --characters CHARACTERS
characters to include (default: ASCII)
Here are some interesting character sets you might like to use after the -c. Note that you need to escape characters depending on your shell! Please, feel free to contribute and add your own!
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
0123456789αβΓγΔδζηθλμξοΠπρΣστΦφψΩω±×÷϶∂∆∏∑∙√∞∩∫≈≠≡≤≥/*+=<>
0123456789⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⓪⓿❶❷❸❹❺❻❼❽❾❿⓫⓬⓭⓭⓮⓯⓰⓱⓲⓳⓴
ΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκΛλΜμΝνΞξΟοΠπΡρΣσςΤτΥυΦφΧχΨψΩω
