Turn an image into ASCII art

Recreate a picture in text characters, from simple @#*: shading to fine detail or solid blocks. Copy the text for a code comment, README or chat, or save it as an image, in black and white or full colour.

Drop an image hereAdd an image

JPG, PNG, WebP, GIF or AVIF, up to 80 MB. You can also paste an image.

Result preview

Processed on your device. Your image is never uploaded.

How it works

  1. Your browser divides the image into a grid of small blocks, one per character.
  2. It measures the brightness of each block and picks a character with matching density: light ones such as . and :, dense ones such as # and @.
  3. The same characters are written out as text and drawn into an image, so both match exactly.

Supported formats

Opens
JPG, PNG, WebP, AVIF, BMP and GIF (the first frame of an animation)
Saves
The art as plain text (.txt or copied), and as a PNG or JPG image
Limits
Files up to 80 MB. The saved image is 12 pixels per character wide, so at most 2,400 pixels.
  • Each character stands for a small block of the image. There are about half as many rows as you’d expect, because characters are taller than they are wide.
  • Tones are stretched to use the full range of characters, so dull photos still come out clearly.

Your image stays on your device

This tool runs entirely in your browser. The image is never uploaded, so there is nothing for us to store, see or delete.

To check, open your browser’s developer tools, switch to the Network tab and use the tool: you will not see your image being sent anywhere.

Questions

Are my images uploaded anywhere?

No. The image is read and processed by your own browser. Nothing is sent to our servers, so there is no copy of your image anywhere but your own device.

Why does the text look stretched when I paste it?

ASCII art needs a monospaced font, where every character is the same width. Paste it into a code block, a plain-text editor or a terminal.

Which images work best?

Pictures with a clear subject and strong contrast: portraits, logos and silhouettes. Fine textures turn into noise at small widths.