How to Make ASCII Art
How to make ASCII art: draw it by hand in a monospace text editor, turn words into banners with FIGlet fonts, convert a photo to characters, or generate it with code. Each method needs a monospace font, or the shape falls apart.
By Maya Chen, lettering designer and type educator · Checked by Jordan Hale · · Published · How we review content
Key facts
- ASCII art can be made four ways: by hand, from text as banner lettering, from a photo, or with code.
- Any plain text editor with a monospace font and word wrap turned off is enough to draw ASCII art by hand.
- Characters are about twice as tall as they are wide, so round shapes need roughly twice as many columns as rows.
- A common shading ramp runs from dark to light: @ % # * + = - : . and a space.
- Photo converters work best on silhouettes and high-contrast images; busy photos turn to noise.
You need only a monospace font and a place to type it. Which method suits you depends on whether you want to draw, convert or generate.
How to make ASCII art in four ways
Each method starts from the same rule: every character takes the same width, so the picture only holds together in a monospace font.
How do you draw ASCII art by hand?
- Open a plain text editor and set a monospace font such as Consolas, Menlo or DejaVu Sans Mono. Turn off word wrap.
- Block out the shape with one character, for example
#, as if colouring squares on graph paper. Remember that each cell is about twice as tall as it is wide. - Refine the edges. Replace the outline with characters that follow its angle:
/and\for diagonals,|for uprights,_for flat bottoms,-for flat tops,(and)for curves,'and.for the tops and bottoms of curves. - Add details last: eyes (
o,O,^), noses (v,Y), whiskers (><). - Check every line by pasting into a code block. Trailing spaces don’t matter; leading spaces do.
| Shape | Characters |
|---|---|
| Steep slope | / \ ` |
| Gentle slope | .-' '-. _.- |
| Round top | .-. .--. |
| Round bottom | '-' `--' |
| Shading, dark to light | @ % # * + = - : . |
How do you turn words into big ASCII letters?
Type into the ASCII art generator, choose a FIGlet font and copy. For a terminal, the same fonts are available offline: figlet and toilet are in most Linux package managers and Homebrew, and figlet -f slant Hello prints Hello in the Slant font.
How do you convert a picture to ASCII art?
Use the image to ASCII converter. It shrinks the picture to a grid, measures how dark each cell is and picks a character with matching ink, or switches to Braille dots for finer detail. Silhouettes and high-contrast photos convert best; busy photos turn to noise.
How do you generate ASCII art with code?
The idea behind every converter fits in a few lines of Python with the Pillow library:
from PIL import Image
RAMP = "@%#*+=-:. " # dark to light
img = Image.open("cat.png").convert("L")
cols = 60
rows = int(cols * img.height / img.width * 0.5) # cells are about twice as tall as wide
img = img.resize((cols, rows))
for y in range(rows):
print("".join(RAMP[img.getpixel((x, y)) * len(RAMP) // 256] for x in range(cols)))
For text banners in Python, the pyfiglet package uses the same FIGlet fonts.
What mistakes break ASCII art?
- Pasting into a proportional font. Use a code block, terminal or monospace document.
- Tabs. Editors show tabs at different widths. Convert tabs to spaces.
- Automatic formatting. Markdown turns
*text*into italics and lines of dashes into rules; chat apps turn:)into emoji. Code blocks prevent both. - Wide characters. Emoji and Chinese, Japanese or Korean characters take two columns and push everything after them out of line.
Once you know how to make ASCII art, learn from ready-made pieces by browsing the ASCII art galleries, and read what ASCII art is for its history.
Frequently asked questions
Basics
How to make ASCII art from scratch if I have never drawn any?
Where it works
What is the best program for drawing ASCII art?
Can I make ASCII art on my phone?
How it works
How do I make ASCII art of a photo?
How to make ASCII art in Python?
How do I make ASCII art in the terminal?
Tips & limits
What characters should I use for shading in ASCII art?
Why do round shapes look tall and thin when I draw ASCII art by hand?
How to make ASCII art look right, and which font should I use?
Related
- ASCII Art GeneratorThis ASCII art generator turns your words into big letters made of keyboard characters, in 32 FIGlet fonts. Type a word, pick a font, then copy it plain or as a Discord code block.
- Image to ASCII Art ConverterThis image to ASCII converter turns a picture into text art made of characters or Braille dots. Choose, drop or paste an image, set the width, then copy the result or save a .txt or PNG.
- ASCII ArtASCII art is pictures and lettering made from keyboard characters. Copy a ready-made piece from the galleries, make your own from text or a photo, and learn how to keep it from breaking when you paste it into chats, bios and code blocks.
- What Is ASCII Art?What is ASCII art? Pictures and lettering made from text characters, strictly the 95 printable ASCII characters. This guide covers its history from typewriter art to Discord code blocks, the main styles, and why it only lines up in monospace fonts.
- Box Drawing CharactersBox drawing characters are the 128 Unicode line pieces from U+2500 to U+257F, shown with the 32 block elements and shades beside them, ready to copy. Tap one to copy it, or start from a ready-made box, table or folder tree.
- What Is Lettering? How It Differs From Calligraphy and TypographyWhat is lettering? It is drawing letters for one specific piece, unlike calligraphy, which writes letters in strokes, and typography, which arranges ready-made type. Here is what each term means, the tools, the history, and how to start drawing letters.