ASCII Art Generator
Convert any image into ASCII art, with character sets, contrast and width you control.
The ASCII Art Generator runs entirely in your browser. Images you drop in are read on your device and never uploaded.
Open the Fancy Text Generator
About ASCII Art Generator
Turning a picture into text is a ramp problem. Order a set of characters from the one that leaves the most ink on the page to the one that leaves the least, measure each pixel's brightness, and swap it for the character that matches. The other half of the trick is aspect ratio: a monospace cell is roughly twice as tall as it is wide, so the image has to be squashed vertically before conversion or everything comes out stretched. This generator handles both, offers ramps from a 70-level classic to Unicode blocks, and lets you push the contrast — which matters more than anything else, because ASCII art has far fewer tones to work with than a photograph.
Features
- Five character ramps, from a 70-level classic to blocks and binary
- Width from 20 to 240 characters, with presets for terminal widths
- Aspect ratio corrected for the shape of a monospace cell
- Contrast control, which matters more than any other setting
- Invert for printing on white instead of a dark terminal
- Transparent pixels rendered as blanks rather than black
- Copy as plain text or download as a styled HTML page
- Character and line counts for the finished art
How to use the ASCII Art Generator
- Drop in an image — high-contrast pictures with a clear subject work best
- Set the width in characters and pick a ramp
- Push the contrast until the shapes read clearly
- Copy the text, or download it as HTML to keep the styling
Example
Input
portrait.jpg · 80 columns · standard ramp
Output
80 × 40 characters
@%#*+=-:. mapped from dark to light
Eighty columns is the classic terminal width, and forty rows is what the aspect correction produces from a square image.
Common errors & troubleshooting
- The art looks vertically stretched. — That is what happens without aspect correction, since a character cell is about twice as tall as it is wide. This tool halves the row count for you, so a square image becomes twice as wide as it is tall in characters.
- The result is an unreadable mush. — Too much detail for the width. Either raise the column count or pick a picture with a clearer subject — ASCII art has around ten usable tones, so busy photographs lose their structure.
- It looks inverted when pasted into a document. — The default ramp assumes light text on a dark background. Turn on invert for a white page, where the darkest character should represent the darkest part of the image.
Frequently asked questions
- How does image to ASCII conversion work?
- Each pixel's brightness is measured and mapped onto a ramp of characters ordered by how much ink they leave. The image is first scaled down to the character grid and squashed vertically to match the shape of a monospace cell.
- What is the best character set for ASCII art?
- A long ramp such as the 70-character classic gives the smoothest gradients at large sizes, while a ten-character ramp reads better when the output is small. Unicode block shading looks the most solid in a terminal.
- What width should I use?
- Eighty columns is the traditional terminal width and a good default. Go to 120 or 200 for detail on a large screen, and down to 40 or 60 if the art has to fit in a comment or a chat message.
- Why does my ASCII art look stretched?
- Because monospace characters are taller than they are wide. Any converter that maps one pixel to one character without correcting for that produces art roughly twice as tall as the original.
- Is my photo uploaded to make ASCII art?
- No. The image is drawn to a canvas and read pixel by pixel in your browser, so it never leaves your device.
Related tools
All ArrayKit tools