Image to ASCII Art

Turn a picture into a drawing made of ordinary keyboard characters, with letters and punctuation standing in for light and shade. Paste it into a chat message, a code comment or a terminal, or save it as an image when it needs to keep its shape.

How to use it

The picture is divided into a grid of small squares.

  1. Add a picture Drag it in or click to choose. Pictures with strong light and dark areas work far better than flat, evenly lit ones.
  2. Set the width This is how many characters wide the art will be. Around 100 is a good balance. Use less for a chat message, more for a poster.
  3. Try different characters The detailed set gives the smoothest result. Blocks look solid and bold. Binary uses only 1 and 0 for a computery look.
Full instructions

Drop a picture here

or click to choose · high-contrast pictures work best

Choose image
In depth

Making pictures out of letters, and getting them to hold their shape

Here is a deeper look at turning a photo into character art: how a grid of squares becomes rows of symbols, what each setting truly changes, a start-to-finish banner example, and why the result sometimes falls apart the moment you paste it somewhere.

Screenshot: How to turn a picture into text art
How to turn a picture into text art as it appears when the page opens.

An old trick that refuses to die

Long before screens could show photos, printers could only produce letters, so people drew with them. The habit stuck. Today you still find character art at the top of source files, in terminal welcome screens, in chat signatures and in readme files, partly for nostalgia and partly because plain text travels absolutely anywhere.

This converter exists for those moments. Give it a picture and it hands back the same scene rebuilt from typed symbols, ready to copy. Programmers decorate their projects with it, streamers drop it into chat, and plenty of people just want their dog rendered in punctuation.

How a photo becomes typed symbols

Under the hood the idea is simple. The image is chopped into cells, one cell per output character. The tool measures how bright each cell is on average, then substitutes a symbol of matching visual weight. Heavy glyphs full of strokes stand in for shadow, thin ones for midtones, and blank space for light.

This explains the single most useful rule: subjects with bold light and dark regions convert beautifully, while flat evenly lit scenes turn to porridge. A silhouette, a logo, a face lit from one side, all strong candidates. A misty grey landscape, not so much.

Width is really a resolution dial

The Width slider, from 20 to 300 characters, decides how many columns the art gets, and therefore how much detail survives. Think of it as choosing megapixels for a text file.

At 40 characters you get something charming and chunky that fits a phone screen. The default of 100 suits a code comment viewed in an editor. At 250 or 300 you are making a poster, and the counter under the preview will show tens of thousands of characters. Message apps often truncate past a few thousand, so check the Length stat before committing to a paste.

Choosing your alphabet

The Characters menu swaps the palette of symbols. The detailed set uses many glyphs across the brightness range, giving smooth gradients and the most photographic feel. Blocks builds the art from solid block characters, bold and poster-like even from across a room. Binary restricts everything to 1 and 0, which reads as deliberately digital and suits anything computer themed.

There is no single best set. The same portrait can feel gentle in the detailed set and aggressive in blocks. Switching costs one click and re-renders instantly, so audition all of them.

Crop before you convert

The grid covers the whole frame, empty corners included. So a person standing small in a wide photo might be given only eight characters to exist in, and eight characters cannot hold a face.

The cure is to trim the picture first, using the cropper on this site, then bring the tight version here. Cut in close, leave a little room around the subject, and let the grid spend all its cells on the part that matters. The same photo can go from unrecognisable to obvious with no change to any setting on this page.

All six sets, and what each is for

The menu lists every set with a sample of its own symbols beside the name, so you can see the alphabet before you pick it. Six are offered and they are not interchangeable.

  • Detailed uses ten steps from a heavy at sign down to a plain space. The smoothest of the six and the best default for faces.
  • Classic adds a few more mid weight symbols. It is the look most people picture when they think of text art.
  • Blocks uses solid shaded squares instead of letters. Bold, poster like, and the only set that fills its cell completely.
  • Simple has four steps and nothing else. Crude on a photo, excellent on a logo or a silhouette where you want a hard edge.
  • Binary is only 1, 0 and a space. It reads as machine output and suits anything about code.
  • Letters is built from capitals, so the art is made of real words that are not words. Good for headers where you want the text to look typed.

Why there are fewer rows than columns

Look at the Art size figure and you will notice the two numbers do not match the shape of your photo. A typed character is roughly twice as tall as it is wide, so the tool squashes the row count to compensate. Without that step every picture would come out looking stretched downward.

The arithmetic is worth knowing before you set the width. A square photo at 100 characters across produces about 50 lines. A wide landscape at the same setting gives around 33. A phone photo held upright gives about 67.

That is why the Length figure grows so fast. Doubling the width doubles the columns and the rows at once, so 100 across is roughly 5,000 characters while 200 across is closer to 20,000. Check both numbers before you paste anywhere with a limit.

A smaller run: a pet in a chat message

The terminal banner needed a narrow, inverted result. A message to a friend is a different shape of job, and the numbers change with it.

Drop in a photo of a cat sitting against a pale wall. Set Width to 45. That sounds tiny, but a chat window on a phone is narrow, and anything wider will wrap and fall to pieces. Choose the Simple set, because at this size a subtle ten step gradient just turns into visual mush.

Push Contrast to about 170 so the cat separates cleanly from the wall behind it. Leave Invert alone, since most chat apps show dark text on a light bubble. The Length figure should read somewhere around a thousand characters, which almost any message box will accept.

Press Copy text and paste. If it arrives crooked, the app is using a proportional font, and the fix is to send the PNG instead.

Contrast, and the invert switch

The Contrast slider stretches the difference between light and dark before symbols are assigned, from 50 up to 250 percent. Photos of people usually benefit from a nudge upward, around 130 to 160, because faces carry subtle tones that otherwise map to the same few characters.

Invert flips the whole brightness mapping, and it exists because the tool assumes dark symbols on a light page. Paste that assumption into a dark terminal and your subject becomes a ghost hole in a field of characters. Ticking Invert before copying fixes it. If your art looks like a photographic negative wherever you put it, this switch is almost always the answer.

The colour option, honestly

Keep the original colours tints each character with the hue from its patch of the photo. On this page, and in a saved PNG, the effect is lovely.

But understand its limit before relying on it. A .txt file stores characters and nothing else, so the colour information is discarded the moment you save as text or paste into a plain editor. Colour survives only where the picture format carries it. Treat the option as a PNG feature, not a text feature, and you will never be surprised.

Three ways to take it with you

Copy text puts the raw characters on your clipboard for pasting into chats, comments and terminals. Save as .txt writes the same characters to a file, which is safer for very long results. Save as PNG renders the art as an actual image that can never be reflowed or mangled.

The PNG route has its own checkbox, Dark background when saving, ticked by default. It gives the classic terminal look of pale characters on near black. Untick it for a light image that sits better in printed documents.

Worked example: a start-up banner

Suppose you want a coffee cup above the version number when your little command line program launches. Find a photo of a mug against a bright wall and drop it in.

Set Width to 60, since terminal windows are commonly 80 columns and you want margin. Choose the detailed character set, push Contrast to 140 so the cup separates from the wall, and tick Invert because terminals are usually dark. The Art size stat confirms 60 across. Click Copy text, paste it between quotes in your print statement, and run the program. If the handle smears, nudge the width to 80 and try again.

Why pasted art goes crooked

The most common complaint has one cause. Character art aligns only when every symbol occupies identical width, which is true in a monospaced font and false nearly everywhere else. Word processors, social feeds and email bodies use proportional fonts, so each row ends at a different place and the picture shears sideways.

You cannot fix that from this end with settings. Either paste where code fonts live, wrap it in a code block if the destination supports one, or sidestep the whole problem by exporting the PNG instead.

Jobs this tool should not do

If you need the photo smaller rather than symbolic, the compressor and resizer on this site are the right tools. If you want a stylised but still photographic look, try the effects pages instead, since character art throws away far more detail than any filter.

Nothing sent, by the way, applies here as everywhere on the site. The grid sampling and symbol matching run in your browser on your machine, the picture never crosses the network, and the only outputs are the clipboard and files you choose to save.

Help

How to turn a picture into text art

The picture is divided into a grid of small squares. Each square is replaced by a character that looks about as dark as that part of the picture. Dense characters like @ stand in for dark areas, and spaces for light ones.

Add a picture

Drag it in or click to choose. Pictures with strong light and dark areas work far better than flat, evenly lit ones.

Set the width

This is how many characters wide the art will be. Around 100 is a good balance. Use less for a chat message, more for a poster.

Try different characters

The detailed set gives the smoothest result. Blocks look solid and bold. Binary uses only 1 and 0 for a computery look.

Copy or save

Copy the text to paste anywhere, save it as a .txt file, or save it as a PNG picture if you want to keep the layout.

Always paste text art into a monospaced font

Text art only lines up when every character is exactly the same width. Chat apps, code editors and terminals usually use that kind of font, so it looks correct. Word processors and social media often do not, and the art will come out crooked. If that happens, save it as a PNG instead.

Good to know

Simple pictures work best

A face, a logo or a silhouette turns out well. A busy landscape usually becomes mush, because there is not enough room for the detail.

Nothing is uploaded

Your picture is read and converted inside your browser. Nothing is sent anywhere.

Invert for dark screens

The art assumes dark text on a light background. If you are pasting into a dark terminal or a dark chat theme, turn on Invert so it looks right.

Watch the length

A width of 200 characters produces tens of thousands of characters in total. That is too long for most chat apps, which cut messages off.

Common questions

What is ASCII art?
It is a picture made entirely out of text characters. It dates back to early computers and printers that could only produce letters and symbols, and it is still popular in code comments and terminals.
Why does my art look stretched?
You have pasted it somewhere that is not using a monospaced font, so the characters are different widths. Paste it into a code editor or terminal, or save it as a PNG.
Is my picture uploaded?
No. The conversion happens inside your browser and your picture never leaves your device.
Why does the colour option not work in a text file?
A plain text file can only store characters, not colours. The colour version shows on this page and in the saved PNG, but a .txt file will always be plain.
What width should I choose?
About 80 to 100 characters suits a chat message or code comment. Go higher only if you are saving it as an image or printing it.
Can I use this on a photo of a person?
Yes, and portraits often work well because faces have clear light and dark areas. Increase the contrast a little if the result looks flat.