ASCII art
Turn an image into text art, or set a line of type as a big ASCII banner.
Above 1 pushes the midtones dark, below 1 opens them up.
A preset name, or your own characters ordered dark to light — the trailing space is what draws blank sky.
''`^^^"""""^^^`''
'`",::;;;;;;;;;;;;;;;;;;;::,"^`
`":;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:,^.
`,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:"`
.":;;;;;;;;;;;;;;;IIll!!ii>>>>>>ii!!lI;;;;;;;;;;;:,^
^:;;;;;;;;;;;;Il!i<~+_-?][}{{11)))1{{}[]-_~>il;;;;;;;;;,`
`:;;;;;;;;;Il!><~+-?]}{)(|\tfjrrxxxxxxxrjft\(1}]-~>!I;;;;;;:`
.,;;;;;;;I!i><+_-?[}1)|\tjrxuvzXYUJCCLLLCCJUXzvuxf/|{[?~>l;;;;;:`
^:;;;Il!i><++_?][{1(|/tjxnvzXUCL0ZmqpdbbbdpqwmZ0LJXcurt\)}?+>l;;;;:^
,;;l!i><~+_-?][}{)(|/tjrnvcXUCQOmppZ0zXYYLmpa*akpwZ0LJXcnj/|{[-<!I;;;,.
;!i><~++_-?][}{1)(|/tfjxnvcXUCLLzf> {cZhhbqm0LJXcurt|)}?+>l;;:^
.!<~++_--?][}}{1)(|\/tfjrxnvczXYf <zwqwm0LJYzvnjt|)}?_<l;;"
i+_--?]][[}{{1))(|\\/tffjrxxnnj~ [JQ0QLCUXzvnrt\({[?+<!;:
I?]][[[}}{{11))((||\\\//tttt/\(< ?rcXYYXzcvuxjf/|){]-+>l:
?}}{{{1111))))((((|||||||((1}?<` ^+1trxuuunnxrjt/|(1}]-+>;
>111)))))))((((((((((())11}[?+!;: :;>]1|tfjjjjjft/\|)1{[?_~l
1(((|||||(((((((()))11{}[]-+>I;;;:' ";;;l~?}1(\//////\|((1{}]-+l
\\\\\\\\\||||((())11{}[?-+<iI;;;;;;"` ^:;;;;;;!~-]{1)(||||||(()1{[]-`
-ttttt///\\\|||())1{}[]?_+<!;;;;;;;;;;:"^' '^,:;;;;;;;;;I>+-]}{1)(((((())1{}[i
?jjjffftt//\\||()1{}[]?_+<i;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;!<+-][{1))(((((())1]
]xxrrjjfftt/\||()1}}[?-+<il;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l>~_?]}{1))((((((()
+unnxrrjjft//\|()1{[]-_~>!I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l>~_-]}{1))(||||||?
cvunnxrrjft/\|()1}[]-_~>!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!<~_?]}{1)(||\\//[
\zcvunxxrjft/\|(1{}]-_~>!I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Ii~+-][{1)(|\/ttf}
>Xzcvuunxrjft/\()1{[]_+~i!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Ii<+-?[{1)|\/tffj1
jYXzcvunxrjft/||))[[?_+>>;;;;;;;;I;;;;;;;;;;lIII;;;;;;;;;;;;;;;;;;Ii<+-][{1(|\tfjrx_
!UUYXzcunxrjjtt||({[)?+__>;;;;!;;;;;;;l;I;!!;!ii!!l;;;ll!;;i!;;;;;>>~+-]}1)|\/fjrxn
jCUYXzcvunrrff/|))1)?]?[il;<>;<>l!;>:;+<!<l>~i<>i!><~>!;i!;!;;;;li_+_?[{)(\/fjrnut
rLJUYXzcunxjrjt/||/)[[[]__+];~+<<>!>-~_>>~_>~~+_i<~;~!++;_ii<;<i_+_?[}1(\/fjxnvz+
rQCJUXzcvunrrt//\\|1|}]]-__<>~;}<>[;?+?[?<+~--+?[+?>};>_+><+l>]?[?[{1(\/frxuvzt
c0LCUYXzzvvnvxnt/n1/|{{]}1[|I1[)1_)_>1{_1{)||)~-[[[[_}|_;]?[~}1][{)/\tfrxucXX!
t0QLCUYXcvzuujjz\fj(|\|f})1{]?}1[)_])({[_\)(_)([[11_<\{_-<+[?{}1f|/tjxnvzYc>
]0OQLCUYUXzzXrjftnjf/u)(j)_)]</(l\)1)11t1-)t1)))[(t?tj\}/|)}|(|\tjrnucXUYi
<vmOQLJCYJzYcnxjnzfnnfu//f({/j/\]1}t{|-|(|-||r}x[r)}1r)|{1(t/tfrnuczYJY-
{JmZ0LLJYJzcCUuzrvvun/uznjc|tx((rj\urr\ffu/j\nn(n)}{\(|\/fjxnvczYJCj
-QwZOQLLUQUzYzUcuUfnrvxtfnctt]cv)|rnUrrrtx/x\n1t|x/tfjxnuvzXUJQY{
(LqmO0QCJLYUXYYcnvnvXzz/vfvXvvuXCuuUzfrxvxnc/r/jrxnuvcXYUCQJ{
1zZqmZ0Q0LJCQJUXvXUzCrXJXYnuccuncccUuxuvvXuvnuvczXUJCQOY(
|YqpwZO0QLCQUJCXUzXXvCuCYcnJJJcnzcuXzXcczXYUJCL0O0v<
|UmdqwmO00QLCJQUYYYJXXXQzzzCXXXXXYUUJCLQ0OZOY)
<fYOqpqwmmZO00QQLLLLLCCCLLLLQQ00OZmqQUu?
\vLQmbdppqqwwwwwmwwwqqpdOLCv}
\\fcvvvvvvvvf|\
Cells are sampled two source rows tall for every one wide, because a terminal character is about twice as tall as it is wide — the preview holds that same 1.2 line-height, so paste it anywhere monospaced and it keeps its proportions. The ANSI copy carries 24-bit colour and prints straight into a terminal.
There is still a place for text that renders anywhere: a banner in a README, a header in a CLI's output, something in a terminal that is not another line of log.
Convert an image by sampling its brightness onto a character ramp, with adjustable width and an invertible ramp for light or dark backgrounds. The banner mode does the other kind — a short string set in a blocky figlet-style face.
What people open it for
- Adding a banner to a CLI tool's startup output
- Putting a logo into a plain-text README
- Making an image legible as monospaced text
In the terminal
tools asciiart
Every utility is also a command in the desktop's shell.