Image to ASCII art — turn a picture into copyable text characters

Choose a picture and a width in characters, and the tool rebuilds it from text characters, with dense characters for dark areas and light ones for bright areas.

Live demo · real result from this tool

Drop your image here

or paste with Ctrl+V · nothing is uploaded · add several to process them in one go

Your result appears here — processed on your device.

Processed on your device — nothing is uploaded.

How to use the ASCII art generator

  1. Choose an image.
  2. Set Width in characters from 20 to 240. The default is 100.
  3. Pick Characters: Standard (@%#*+=-:. ), Detailed (70 levels), Blocks (█▓▒░) or Two-level (#).
  4. Tick Invert (for light text on a dark background) if needed.
  5. Press Convert to ASCII. Copy the text, or download it as ascii-art.txt.

What it does and when to use it

ASCII art draws a picture with keyboard characters. People use it for README files and code comments, terminal start-up banners, plain-text emails and chat messages, forum signatures, or simply for fun. Because the result is text, it can go anywhere text can, with no image file.

The character sets give different looks. Standard is clean and readable. Detailed has 70 steps of density for smoother shading at larger widths. Blocks uses shaded block characters for a bold, pixel-like look. Two-level uses only # and spaces, like a stencil.

For text written as large letters, rather than a picture, see Text to ASCII. To prepare the picture, raise its contrast or remove the background with the background remover. For a pixel-block look that stays an image, try Image Pixelate.

How it works

  1. The picture is decoded on your device (pictures over 1,200 px are scaled down first). Transparent areas are placed on white.
  2. It is resized to the chosen width in characters. The number of lines is height ÷ width × characters × 0.5, rounded, because a character cell is about twice as tall as it is wide.
  3. For each cell the brightness (luma) is worked out from 0 to 1 and turned into a position in the character list: position = floor(luma × number of characters). Dark cells pick characters from the dense start of the list, light cells from the sparse end.
  4. Trailing spaces are removed from each line.

Nothing is uploaded; the text is made in your browser.

Worked examples

These figures follow the steps above.

  • A 1200 × 800 photo at the default 100 characters. 800 ÷ 1200 × 100 × 0.5 gives 33 lines of up to 100 characters.
  • The same photo at 60 characters. 20 lines, small enough for a chat message.
  • Which character for which tone, Standard set. Black (luma 0) gives @. Middle grey (luma 128 of 255, about 0.5) gives position 5, which is =. Pure white gives a space. With Invert ticked, black gives a space and white gives @.

Limits and tips

  • Colour is not kept; only brightness matters.
  • Some apps change runs of spaces or use proportional fonts. Paste into a code block to keep the shape.
  • Very wide art wraps on small screens. Choose a width that fits the place you will paste it.

Frequently asked questions

Why does my ASCII art look stretched or squashed?
It must be shown in a monospaced font, where every character has the same width, such as a code block, a terminal or Notepad with Consolas. In normal text fonts the lines have different widths and the picture breaks.
Which width should I choose?
Match where it will be shown. About 80 characters fits a classic terminal window, 100 suits a code block on most screens, and 160–240 gives fine detail when shown in a small font.
When should I tick Invert?
When the text will be light on a dark background, such as most terminals and dark-mode code editors. Without Invert, dense characters stand for dark areas, which suits dark text on white.
Which pictures work best?
Pictures with strong contrast and a simple background, such as a logo, a silhouette or a clear portrait. Busy, low-contrast photos turn into an even grey texture. Raising contrast first helps.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close