Image to ASCII Art Converter
Convert an uploaded image into ASCII art using canvas pixel sampling, with adjustable output width.
How this tool works
Upload an image
Any common image format works - the file is read locally, never uploaded.
Set the output width
Choose how many characters wide the result should be, from 20 to 300.
Pixels are sampled and mapped
Each pixel's brightness picks a character from a 10-step ramp, from space to "@".
Copy the result
The finished ASCII art is a single block of plain text, ready to paste anywhere.
Quick facts
- Category
- Generators
- Best for
- Turning a photo or logo into a text-based ASCII art banner
// Upload an image above to generate ASCII art
About this tool
Upload an image to convert it into ASCII art: the image is drawn onto a canvas at a reduced resolution matching your chosen output width, then every pixel's brightness is sampled and mapped onto a ten-character ramp from " " (brightest) to "@" (darkest) - the same brightness-to-character technique ASCII art generators have used for decades. Output width is adjustable from 20 to 300 characters; height is calculated automatically from the image's aspect ratio, corrected for the fact that a monospace character cell is taller than it is wide, so the result doesn't come out vertically stretched. This tool is monochrome only - color ASCII art would require styling individual characters with their sampled color, which is a meaningfully different (and heavier) tool than a plain-text output; monochrome keeps the result a single block of copy-pasteable text. Runs entirely client-side - uploaded images are never sent anywhere.
Why use this tool
Adjustable output width
Scale from a compact 20-character banner to a detailed 300-character rendering.
Aspect-ratio corrected
Accounts for monospace character cells being taller than wide, so output isn't stretched.
Transparent PNGs handled
Transparent pixels blend toward blank space instead of rendering as solid black.
Plain-text output
Copy-pasteable as-is into a README, terminal banner, or comment block - no HTML or styling needed.
Frequently asked questions
Color ASCII art requires styling each individual character with its own sampled color, typically using a run of colored <span> elements or ANSI escape codes rather than a single block of plain text - that's a meaningfully bigger and different tool than a brightness-to-character converter. Monochrome keeps the output a single copy-pasteable text block, which is also what makes ASCII art actually portable into a README, a terminal, or a plain-text comment.
A monospace character cell is taller than it is wide, so sampling the same number of rows as a 1:1 pixel aspect ratio would suggest makes the result look vertically stretched. The tool corrects for this automatically by sampling fewer rows than a naive aspect-ratio calculation would give - you only control the width, and height follows from the image's proportions with that correction already applied.
Transparent pixels are blended toward white before brightness is calculated, so a fully transparent area renders as blank space rather than as the darkest character in the ramp. Partially transparent pixels blend proportionally, which avoids a common failure mode where transparent backgrounds render as a solid block of "@" characters.
Explore more free tools
Formatters, converters, validators, and generators - all free and running entirely in your browser.
Browse more tools