Image → ASCII art
Turn an image into ASCII (text) art.
Select an image or drag and drop it here
ASCII art is what you reach for when a picture has to live somewhere that cannot hold one: a README, a terminal banner, a code comment, a plain-text signature. This tool reads an image, samples its brightness on a grid, and prints one character per cell — dense symbols where the picture is dark, spaces where it is light.
How it works
How the conversion works
The image is redrawn small — as many pixels across as the character width you chose — and each pixel becomes one character. Brightness is measured with the standard luminance weighting (roughly 30% red, 59% green, 11% blue, which matches how the eye responds), then mapped onto a ten-step ramp:
.:-=+*#%@A space marks the brightest cells, @ the darkest. Because text characters are about twice as tall as they are wide, the tool samples roughly half as many rows as columns, so the result keeps the original proportions instead of coming out stretched.
Width and Invert
Width (chars) runs from 40 to 160 and starts at 90. It is the single setting that matters most: more columns means more detail but longer lines, and anything past about 100 characters will wrap badly in a README or a chat window. Start at 80–90, and only go wider when the output is for a wide terminal.
Invert flips the mapping so bright areas get the dense characters. Use it when the art will sit as dark text on a white page, or when the subject is light on a dark background and the default comes out looking like a negative.
Getting a usable result
High-contrast images with a clear subject convert well; busy scenes, fine text and low-contrast photos turn to noise at any width. Cropping tightly to the subject before converting helps more than any setting here.
Copy puts the text on your clipboard. Paste it into a monospace context — a code block, a terminal, an editor with a fixed-width font. In a proportional font such as the one in most documents, the columns will not line up and the picture falls apart.
Terms explained
- ASCII art
- A picture built out of text characters, sized so that the density of each character stands in for the brightness of a pixel.
- Character ramp
- The ordered set of characters used from lightest to darkest — here a space through to `@` — that maps brightness onto symbols.
- Luminance
- Perceived brightness, calculated from red, green and blue with weights that reflect the eye's greater sensitivity to green.
- Invert
- A switch that reverses the brightness mapping, so dark parts of the image become sparse characters and light parts become dense ones.
- Monospace font
- A font where every character has the same width. ASCII art only aligns correctly when displayed in one.
Frequently asked questions
Why does my ASCII art look distorted when I paste it?
Almost always because the destination uses a proportional font. Text characters vary in width there, so the grid collapses. Paste into a code block, a terminal, or set the text to a monospace font such as Consolas, Menlo or Courier.
What width should I choose?
Around 80–90 characters suits READMEs, chat messages and code comments, since most viewers wrap beyond roughly 100. Go up to 160 only for a wide terminal or a full-screen display, where the extra detail is actually visible.
Can I download the result as an image or a file?
The output is text, and the Copy button places it on your clipboard. Paste it into any editor and save it as a .txt or .md file if you need one — keeping it as text is the point of the format.
Which images convert well?
Simple, high-contrast subjects: logos, silhouettes, portraits against a plain background. Detailed landscapes, screenshots containing small text and washed-out photos lose their structure, because each character has to represent a whole block of pixels.
Is my image uploaded anywhere?
No. It is drawn onto a canvas in your browser and the pixel values are read locally. Nothing is transmitted to a server, and the tool works offline once the page is loaded.
Tell us what went wrong and we'll fix it fast. (Leave an email if you'd like a reply.)