Convert a PNG to ASCII Art
Turn an image into text art for a README, a terminal banner, a commit message or a plain-text email signature. Set how many characters wide you want it, pick a character ramp, and copy the result. Runs entirely in your browser.
Drop an image here
PNG, JPG, WebP, SVG — multiple files allowed
Getting a result that actually reads
Each character samples one cell of the image and picks a glyph by brightness. Two things decide whether the output is recognisable. First, width: below about 60 characters almost nothing survives, 80–120 is the sweet spot for a face or a logo, and past 200 you're producing something nobody can paste anywhere. Second, contrast: ASCII art has maybe ten brightness levels to work with, so a flat, evenly-lit photo turns to mush. Push Contrast up first, or run Black & white to see the shapes the ramp will have to work with.
The row count is derived automatically at half the width ratio, because monospace characters are roughly twice as tall as they are wide. Without that correction everything comes out stretched vertically.
Which ramp to choose
Classic is the familiar @%#*+=-:. — reliable everywhere, safe in
any encoding. Block shading uses Unicode half-tone blocks and looks markedly
better for portraits, but it needs a font with those glyphs. Dense spends 70
distinct characters on fine gradients; good for large output, noisy at small sizes.
Minimal is nearly monochrome and suits bold logos.
Ramps run dark-to-light for dark text on a light background. Viewing in a dark terminal inverts the perceived brightness, so tick Invert — otherwise the picture reads like a photographic negative.
FAQ
Why does my output look like nothing?
Almost always too narrow, too low-contrast, or inverted the wrong way. Try 120 characters wide, boost contrast on the source, and toggle the invert box.
Does it handle transparency?
Transparent areas are composited onto white before sampling, so they read as the lightest characters. If your subject is light on transparency, tick invert.
Can I get coloured ASCII art?
Not here — output is plain text so it pastes anywhere. Colour would mean ANSI escape codes or HTML, which only render in specific places.
Will it look right in my README?
Wrap it in a fenced code block so the monospace grid is preserved. Proportional text will shear the image apart.