Image to ASCII Art — Turn a Photo Into Text Characters
Convert any picture to ASCII art in your browser: choose the width, the character set and inversion, then copy the text or save a colour HTML version.
🔒 Runs in your browser — files never uploaded ⚡ No signup 💯 Free
Turn an image into ASCII art — a picture made of text characters, where dark areas become dense characters like @ and # and light areas become dots and spaces. Choose the width in characters, pick a character set (ten-level, seventy-level, block shades or minimal), invert for dark backgrounds, and copy the text anywhere monospace: a terminal, a code comment, a README, a chat. A colour HTML export keeps the original hues.
How to use Image to ASCII Art
- Drop an image. High contrast and a clear subject convert best; busy photos become noise.
- Set the width — 80 characters fits a terminal, 120–160 for a web page, more for large prints.
- Try the character sets and the invert option (needed when the text will sit on a dark background).
- Copy the text, or download it as .txt or as colour HTML.
How the conversion works
The image is divided into a grid of cells and the average brightness of each cell picks a character from a ramp ordered from lightest to darkest — space, dot, colon, and so on up to @. The cells are twice as tall as they are wide because monospace characters are, which is the detail that keeps faces from coming out stretched. More columns means finer detail and a bigger block of text; the ten-level ramp is the classic look, the seventy-level one gives smoother tones, and the block shades ░▒▓█ read as a greyscale image from a distance.
Getting a good result
- Contrast is everything. A subject against a plain background converts cleanly; a photo full of mid-tones turns to mush. Increase the contrast in an editor first if needed.
- Match the background. The ramp assumes dark text on a light page. For a terminal or a dark chat theme, tick Invert so the dense characters land on the light parts of the image.
- Keep it monospace. Pasted into a proportional font, the columns drift and the picture dissolves. Code blocks,
<pre>tags and terminals are safe. - Width before detail. Pick the width the destination can show without wrapping, then choose the ramp.
Colour
Plain ASCII has no colour. The HTML download wraps every character in its original colour, which looks like a low-resolution painting made of letters — good for a web page, useless in a terminal. The text download is the portable one.
For pixel-style downsizing without the characters, the image resizer; for extracting the colours themselves, the colour picker.
Frequently asked questions
Why does my ASCII art look stretched or squashed?
It should not here — cells are sampled twice as tall as wide to match monospace glyphs. If it looks wrong after pasting, the destination is not using a monospace font, or its line height is unusual. Put it in a code block or <pre>.
Which character set is best?
Standard (10 levels) is the classic look and reads well at small sizes. Detailed (70) gives smoother tones for large widths. Block shades look like a greyscale image from a distance but need a font with those glyphs. Try them — it is instant.
When should I invert?
Whenever the text will sit on a dark background — a terminal, a dark chat theme, a dark website. Without inverting, the dense characters land on the dark parts of the image and the picture looks like a negative.
Why does a photo come out as noise?
Low contrast and fine detail. ASCII art has perhaps ten brightness levels and cells many pixels wide; it needs a clear subject with strong light and dark areas. Increase the contrast, crop to the subject, and use fewer columns.
Can I keep the colours?
Download the colour HTML: each character is wrapped in its original colour. It displays in any browser but not in plain-text places. The .txt download is the portable version.