🖨️ Image to ASCII Art Converter
Upload an image to convert it into text-based ASCII art, sampled by brightness. Best results come from high-contrast images.
One character per sampled block
Your file is decoded and measured on a canvas in this page - it is never
uploaded. The image is shrunk to a grid the size of the output in characters,
each cell's brightness is read, and a character is picked from a ten-step ramp
running @ % # * + = - : . and space:
brightness = (0.299R + 0.587G + 0.114B) / 255
index = floor((1 - brightness) × 10)
rows = round(height / width × columns × 0.55)
The 0.55 exists because a monospace cell is roughly twice as tall as it is wide; without it everything comes out stretched. A 1600×900 photo at 80 columns becomes 25 rows - 2,000 characters in all.
Getting a readable result
- The ramp is built for a dark background. Bright areas get
the dense
@, dark areas get spaces, which is why the preview is green on black. Paste the text onto white and it reads as a negative. - Columns run from 20 to 200, default 80. Under about 60 only a silhouette survives; 150 or more needs a wide window or a small font to line up.
- High contrast wins. Ten steps is all the tonal range there is, so a flat, evenly lit photo collapses into two or three characters.
Frequently asked questions
How do I turn a photo into ASCII art?
Choose an image and the art appears straight away at 80 columns. Nudge the width up or down and it redraws as you type, then press Copy Text to take the characters away with you.
Why does the art look inverted when I paste it?
Because the ramp assumes light-on-dark. The lightest parts of your picture become the heaviest characters, which only reads correctly against a dark background. Invert the image first if you need dark-on-white output.
Which pictures make good ASCII art?
Faces in strong side light, logos, silhouettes and anything with a clear outline. Landscapes and busy crowd shots turn to mush, because ten brightness levels cannot hold that much detail.