Drop a photo, watch a monospace grid appear, then tighten width or swap the character ramp until the silhouette reads the way you want. Everything runs locally in your browser.
Image to ASCII conversion workbench
SourceAdjust sliders after upload for live refresh
Monospace output
Copy or save when you like the grain
0×0
Original px
0×0
Grid size
0
Glyphs
—
Ramp
Drop an image above. The grid fills here as soon as pixels are readable.
When the picture looks like static, width is usually the culprit
Terminal panes and chat boxes rarely tolerate two hundred characters per line. Paste something too wide and the eye loses the shape.
Start near eighty columns, then nudge down if you need to post inside Slack, Discord, or an eighty-column SSH window. Wider grids preserve fine hairlines on portraits; narrow grids exaggerate silhouette, which sometimes helps logos read faster from a distance.
Groups shipping CLI installers or MOTD banners often prototype here, then paste into a heredoc or template file. The width you see on this page is the width you should expect in a fixed-width terminal, so treat eighty columns as a contract with future readers.
Same face, three ramps: what actually shifts
Detailed ramps squeeze more gray steps between black and white, so cheek shadows survive. Block ramps trade subtlety for punch, which suits icons on dark backgrounds. Standard sits between those extremes.
####
## ##
# ** ** #
# ** #
########
##
The snippet above is only a structural hint; your upload will look different because every photo distributes brightness differently. Compare ramps on the same file instead of guessing from examples alone.
How brightness becomes a character
The tool shrinks your image to the width you set, reads each pixel’s red, green, and blue channels, converts them to a single brightness score, then picks a symbol from the ramp. Darker scores lean toward the dense end of the ramp; lighter scores lean toward the sparse end.
Because monospace fonts are taller than they are wide, row height is compressed relative to width. Expect a slightly squat aspect compared with the original photo. Most viewers compensate mentally, yet logos with precise circles sometimes look elliptical until you accept the distortion.
Odd facts worth knowing before you ship a banner
Inverting helps when the subject is dark on white paper; otherwise the default mapping often matches human expectation.
Animated GIFs use the first frame here, so grab a still if you need a specific moment.
Transparency becomes white unless your editor flattened the asset first.
What this mapper refuses to pretend
Color disappears. Only luminance survives, so brand palettes and heat maps flatten to gray logic. Fine serif typography in screenshots may crumble once cells merge. Huge originals still get sampled down, which is intentional; feeding more pixels without raising width mostly burns CPU without new detail.
Processing stays inside your tab. No remote upload runs for this converter. Clear the page and the preview drops from browser memory.
Chat paste versus printed fanfold
Slack threads forgive soft wrapping; printers do not. If you plan to run output through a dot-matrix nostalgia project or a PDF with monospace fonts, lock width early and test the download in the target environment.
Emoji and exotic Unicode symbols in surrounding copy will not damage the ASCII block itself, yet they change how some clients measure line length. Keep decorative text outside the fenced block when possible.
Density versus legibility
More characters per line add detail but demand wider displays. Fewer characters exaggerate shapes and survive narrow columns.
Blocks versus detailed ramps
Blocks read well on OLED terminals; detailed ramps help portraits where cheek transitions matter.
Working with plain strings afterward
Once you like the text, you might push individual bytes through the Text to ASCII helper or compare encodings with the UTF-8 to ASCII flow if downstream systems enforce seven-bit rules.
Short answers for awkward ASCII moments
Practical fixes for width, fonts, and exports.
Why does my paste look stretched sideways?
Most chat apps use proportional fonts. Switch the viewer to monospace or wrap the paste inside a code block so columns stay aligned.
Does anyone at Toolexe see my photo?
No. The file stays inside your browser. Conversion uses canvas APIs locally, so nothing is transmitted for this step.
Which width should I pick for GitHub README files?
Try seventy-two to ninety columns first. README renderers add padding; going wider often forces horizontal scrolling on laptops.
Why did every character turn @ or #?
Either the entire frame is mostly dark or invert is fighting a naturally dark image. Toggle invert or lighten the source before exporting.
Is the downloaded text OK for a commercial README?
The text output is yours. You still need rights to the underlying photograph the same way you would for any other derivative work.
Nearby helpers on the ASCII shelf
Text to ASCIITurn literal strings into byte listings once you leave raster territory.
Character to ASCIIInspect one glyph at a time when debugging odd symbols.
UTF-8 to ASCIISee what survives when systems strip extended bytes.
Decimal to ASCIIJump from numeric lists back to readable characters.
Byte to ASCIIWork at raw byte values when logs only print integers.
Want to stay in top search trends?
Subscribe to our newsletter
Get the inside scoop on new editors, performance strategies, and selected release notes before anyone else by signing up.
Publish notifications for upcoming tool releases
Toolexe team provides micro-tutorials, beta invitations, and behind-the-scenes comments.