Image to ASCII Converter
Drop any JPG, PNG or WebP and this image to ascii converter redraws it with keyboard characters — black and white by default, adjustable in real time, never uploaded.
An image to ascii converter trades pixels for characters: bright areas become sparse symbols like `.` and `:`, dark areas become dense ones like `%` and `@`. This converter runs the whole pipeline in your browser — decode, sample, map, render — so your picture never touches a server. Adjust width, character set, brightness and contrast live, then copy the text or export TXT and PNG from the image to ascii result.
How to Convert an Image to ASCII
- 1
Drop or choose a picture
Drag a JPG, PNG or WebP onto the panel, click to browse, or start with a sample image to see the image to ascii pipeline in action.
- 2
Pick the width
The column slider (40–200) sets how many characters wide the result is — more columns, more detail.
- 3
Tune tone and detail
Brightness and contrast sliders rescue dark photos; invert flips light and dark for terminal backgrounds.
- 4
Copy or download
Copy the image to ascii text, save it as TXT, or render it to a PNG with perfect spacing.
How Image to ASCII Conversion Works
The converter begins by drawing your picture onto an invisible canvas and reading its pixels. Each pixel's red, green and blue values collapse into a single luminance number — how bright that point is. The image to ascii engine then samples a grid of cells across the picture, averages each cell's brightness, and maps it onto a character ramp: a scale running from dense symbols to spaces.
Because characters are taller than they are wide, the grid corrects the aspect ratio by about half — skip that correction and every face comes out stretched. The final lines of text are exactly what FIGlet-era artists did by eye, automated. Everything happens in JavaScript on your device; the image to ascii process is private by construction, not by policy.
Try the samples to see the effect of contrast on the mapping: the cat silhouette converts boldly, while the landscape's gradients show how the ramp paints tone with texture.
Image to ASCII, Sampled Live
######################****************###################### ##################************************################## ###############***********++++++++***********############### #############********+++##++++++++##++++*******############# ###########******++++++*%%#+====+#%%*++++++******########### ##########*****+++++===%%%%%%%%%%%%%%===+++++******######### ########*****+++++=====*%%%%%%%%%%%%*=====+++++*****######## #######*****++++=====-=%%%%%%%%%%%%%%+--====++++*****####### #######****++++====---#%%%%%%%%%%%%%%#---====++++*****###### ######****++++===-----#%%%%%%%%%%%%%%#-----===++++****###### ######****+++===-----:=%%%%%%%%%%%%%%+:-----===++++****##### #####****++++===----:=#%%%%%%%%%%%%%%#=:----===++++****##### #####****+++====----*%%%%%%%%%%%%%%%%%%*----====+++****##### #####****++++===---+%%%%%%%%%%%%%%%%%%%%*---===++++****##### ######****+++====--%%%%%%%%%%%%%%%%%%%%%%=-====+++****###### ######****++++=====%%%%%%%%%%%%%%%%%%%%%%*====++++****###### #######****++++====%%%%%%%%%%%%%%%%%%%%%%#===++++****####### ########****++++===#%%%%%%%%%%%%%%%%%%%%#===++++****######## #########*****++++==#%%%%%%%%%%%%%%%%%%#+=++++*****######### %##########*****+++++*%%%%%%%%%%%%%%%%*+++++*****##########% %%%#########******+++++*#%%%%%%%%%%%%%++++******#########%%% %%%%%#########*****++++++++******++#%%#*+*****##########%%%% %%%%%%##########*****+++++++++++++++#%%%##***#########%%%%%%
Detail vs Readability
More columns — more detail
Raising the width slider packs more characters into the same picture, resolving finer features. Portraits benefit from 100–160 columns before text weight becomes unreadable.
Fewer columns — more readable
Small outputs (40–70 columns) keep the image to ascii art legible in chat windows and narrow terminals, where the shape matters more than the detail.
The Character Ramps
| Set | Ramp idea | Look |
|---|---|---|
| Standard | @ % # * + = - : . (space) | The classic look, high contrast |
| Dense | 70 printable characters | Photographic, fine gradation |
| Blocks | █ ▓ ▒ ░ (Unicode) | Solid poster style, not strict ASCII |
| Minimal | # + - . (space) | Clean line art, prints well |
Getting Great Results
Start with clear subjects
Silhouettes, logos and high-contrast portraits convert best. Busy scenes melt into texture because the image to ascii grid cannot resolve every leaf and window.
Rescue exposure with sliders
Dark photos map mostly to dense characters and look clogged. Add brightness, then contrast, until the subject separates from the background — the preview re-renders as you drag.
Match the background polarity
Terminal backgrounds are dark, so light-on-dark art reads best there. If your destination is a dark theme, enable invert so the image to ascii output uses dense characters for highlights.
Checklist Before You Copy
- Preview at the destination's real width — chat panes are narrower than browsers.
- Use the standard or minimal set for strict-ASCII environments.
- Export PNG when the target app restyles fonts on pasted text.
- Re-run the conversion at higher columns for print, lower for chat.
- Remember: no image is ever uploaded, so experimenting costs nothing.
What People Convert With Image to ASCII
Terminal profile pictures
Developers convert avatars to ASCII for tools that only print text.
README illustration
Maintainers embed a converted logo at the top of documentation.
Retro game assets
Hobbyists convert sprites for text-mode games and prototypes.
Chat art drops
Friends paste converted memes inside code blocks for full effect.
Poster drafts
Designers preview monochrome poster ideas from any photo in seconds.
Accessibility testing
Teams check how images degrade to text-only representations.