ASCII Art Generator
ASCII art generator turns one image into a character grid and shows both side by side. Choose its columns, rows, dark-to-light character set and inversion; this lossy output cannot restore the original image.
Original image
Character art
Choose an image to generate character art.
Ready. Your image stays in this browser.
Same original image, four parameter checks
We created one 400 × 100 PNG containing four equal-width gray bands: RGB 0, 85, 170 and 255. Python independently sampled each band and calculated its character index; this page’s JavaScript matched the four outputs below. The image and table were generated for this experiment, not copied from another site. Use the measured-image button and enter each row’s settings to reproduce it.
| Grid | Dark-to-light character set | Invert | Each output row | Text length with newlines |
|---|---|---|---|---|
| 8 × 2 | @%#*+=-:.[space] | Off | @@**--·· | 17 |
| 12 × 3 | @%#*+=-:.[space] | Off | @@@***---··· | 38 |
| 8 × 2 | @.[space] | Off | @@....·· | 17 |
| 8 × 2 | @%#*+=-:.[space] | On | ··--**@@ | 17 |
In the first setting, each band occupies two columns. Its indices are 0, 3, 6 and 9 in the ten-character ramp, yielding @@**-- followed by two spaces. The second setting has three columns per band and three repeated output rows. Its longer text is caused by the chosen grid dimensions, not a different source image.
The third setting reduces the ramp to three distinct characters. Both middle bands map to a dot, so their original brightness difference is no longer represented. The fourth setting reverses the first setting’s brightness direction: the black band becomes spaces, and the white band becomes @. Toggling inversion back restores the first character output for the same image and settings. This is a parameter-direction check, not decoding character art back into pixels.
Text length is columns multiplied by rows plus one newline between adjacent rows. A visible · in this table is only a marker for a real space. The copied output retains actual spaces. No character table can recover the source colors or discarded image detail.
Parameters and rendering
Columns and rows set the exact output grid. Increasing them keeps more sampled positions but increases output length; changing their ratio changes the represented shape. Choose both dimensions yourself. The preview scales the monospace display to fit; the copied text has no font information.
The character set must contain 2–32 distinct printable ASCII characters, including an optional space, ordered from dark to light. The defaults are @%#*+=-:. followed by a space. The mapping uses the average of red, green and blue, then rounds brightness × (character count − 1) ÷ 255 to the nearest index. Inversion substitutes 255 − brightness. This is an arithmetic brightness rule, not a promise of perceptual color accuracy.
The browser samples a grid using nearest-neighbor scaling with smoothing disabled. Transparent pixels are composited on white first. The output has no colors. Display shape depends on the viewing font and its character proportions.
Input, output and limits
This image to ascii tool accepts one PNG, JPEG or WebP image, up to 10 MiB and 20 million decoded pixels. SVG and animated formats are not supported. Decoding errors and unsupported formats report a message. Output is plain character art, 2–160 columns by 2–80 rows, with one-click copy. One image per run; no batch mode, URL input or file history.
No login or registration. Image decoding and conversion run locally. Your uploaded image is not sent to a server. The built-in sample is fetched from this site only when requested.
Can character art be converted back to the original image?
No. Many pixel colors and details share a character index. Reversing the inversion setting changes the mapping direction; it does not reconstruct original pixels.
How is this different from ASCII codes?
ASCII Decode turns codes into text; Text to ASCII gives character codes; ASCII Table lists those codes. This page uses printable characters as image marks.
Related walkthrough
This walkthrough compares four parameter settings on the original controlled image and explains why character art cannot restore the source pixels.
Loading the player connects to YouTube and shares connection information such as your IP address and playback requests.
To extract printed English from an image, use Image to Text.