Convert an image to ASCII
Open a PNG, JPEG or WebP image and turn it into a grid of characters. Compare the original with the output, adjust the result and copy the text or download a PNG, SVG or TXT file.
Explore by topic
Image to ASCII converter
Enable JavaScript to convert an image. The demos are drawn locally, so you do not need a personal file to try the tool.
Make a readable result in three steps
- Start with a clear subject. A high-contrast logo or an isolated subject is a useful starting point. The Logo and Landscape demos let you experiment without opening a file.
- Set the width, then the contrast. Start at 80 columns. Try 120 for more detail, or 40–60 for a narrow text area. These are starting points, not guaranteed sizes for every screen.
- Check the destination background. Invert the palette if needed. PNG preserves appearance; TXT needs a monospace font and preserved spaces.
Two reproducible trials
The demos are drawings generated by this site's code, not stock photographs. They provide the same input each time you repeat a comparison.
| Trial | Starting settings | What to observe | Next step |
|---|---|---|---|
| Logo | Logo demo; 80 columns; contrast 0; brightness 0; detailed palette; inversion off | The silhouette and solid areas. Features smaller than one grid cell may disappear. | Compare 40 and 120 columns with all other settings unchanged. |
| Landscape | Landscape demo; 120 columns; contrast 0; brightness 0; detailed palette; inversion off | The separation between the sky and terrain. More cells make the output wider. | Compare the short palette, then inversion on a dark background. |
Preset names describe suggested settings: “Portrait” does not detect faces and the tool does not recognise image content.
What the settings change
| Setting | Effect | Limit |
|---|---|---|
| Width: 40–180 | Number of character columns | Wider output may not fit a mobile conversation. |
| Contrast | Spreads or compresses tones around a midpoint | Too much contrast removes subtle tones. |
| Brightness | Shifts values towards lighter or darker tones | Extreme values flatten the image. |
| Palette | Changes which characters represent each tone | Perceived density depends on the font. |
| Invert | Reverses the order of character densities | Changing the background alone does not guarantee contrast. |
| Transparent background | Removes the background of the exported PNG or SVG | Characters must remain visible against the final background. |
How does the conversion work?
The browser decodes the image, scales it to a grid and reads the pixels through Canvas. Each cell receives a character based on a weighted grayscale estimate. The MDN Canvas documentation describes access to red, green, blue and alpha values used in this type of processing.
This engine works on displayed colour values, not a photometric measurement of light. The grid height accounts for character cells being taller than they are wide. A different font or line spacing can change the proportions after pasting.
The tool's palettes contain printable ASCII characters, which can be checked against the reference ASCII table. The output does not contain Unicode Braille or ANSI colour sequences.
Formats, privacy and limits
Supported formats: PNG, JPEG and WebP. Tool limits: 10 MB per file, 20 million pixels and 500 output lines. Resize or crop an image if it exceeds a limit. Animated input does not produce an animation; choose a still image for predictable results.
Transparent source pixels are composited against a light background when calculating characters. “Transparent background” controls the exported file; it does not recreate the cut-out transparency of the original.
The converter processes the image in this page’s memory. It does not store your file or upload it to the server. Read the privacy details.
Small features, fine writing and busy backgrounds can remain hard to read at larger widths. Try a crop or a simpler source image. For pasting problems, use the alignment checker.
Before conversion, you can crop an image with Outils.com to reduce the background around your subject. This tool uses a centred crop: check that the face or important detail remains inside the frame, then import the resulting file here. Resource in French.