ASCII Art Converter
Convert images into colored ASCII art, or render pasted ASCII art and text diagrams back into a downloadable image. 100% client-side, nothing is uploaded.
Drop an image here or click to upload
JPG, PNG, WebP — max 20 MB
How to use
- 1 Upload an image (PNG, JPEG, WebP) to convert it to ASCII art, or switch to the ASCII→Image tab to render text.
- 2 In Image→ASCII mode, choose between Classic chars (.:-=+*#%@) or Block Unicode (░▒▓█) and adjust the column count.
- 3 Toggle colored output to preserve the original image colors in the ASCII render.
- 4 In ASCII→Image mode, paste or type any ASCII art, pick a font and colors, and click Download to save the result.
Key features
- Bidirectional conversion with Image→ASCII and ASCII→Image in a single tool
- Classic ASCII chars (.:-=+*#%@) and Block Unicode (░▒▓█) modes with a one-click toggle
- Full-color output: each ASCII character is colored with the average RGB of its source image region
- Adjustable column count (40–200) to control art detail vs. readability
- ASCII→Image render with custom font family, font size, foreground/background color, and padding
- 100% client-side: images are never uploaded, everything runs in the browser
What Is ASCII Art?
ASCII art represents an image using plain text characters instead of pixels. Each character stands in for a level of brightness: dense characters like @ or # for dark areas, sparse ones like . or a blank space for bright areas. Since it's just text, you can drop it into a terminal, a README, an email, or a code comment without needing an image file at all.
This tool works both directions. Upload a photo and get ASCII art out, or paste ASCII art (or a text-based diagram) and render it into a downloadable PNG. Everything happens in your browser through the Canvas API, so images never get uploaded anywhere.
Common Use Cases
CLI splash screens & logos
Turn a logo into an ASCII banner printed when a command-line tool starts up.
README headers
Add a distinctive text-based banner to a GitHub project README or a code comment header.
Plain-text email signatures
Create a compact logo or divider that renders correctly in plain-text email clients.
Text-based diagrams
Sketch a flowchart or architecture diagram with box-drawing characters and render it as a clean PNG.
ASCII → Image Render Styles
Pick the style that matches what you pasted.
| Style | Best for |
|---|---|
| Text | Renders the characters as monospace text, closest to how it looks in a terminal or editor. |
| Smooth | Applies a blur and contrast pass over the text for a softer, poster-like look. |
| Pixels | Maps each character to a solid color block by brightness. Good for a pixel-art look, especially on ASCII generated from a photo. |
| Diagram | Detects box-drawing characters (-, |, +, ┌┐└┘, arrows) and draws clean connected lines. Good for flowcharts and architecture sketches typed out by hand. |
Frequently Asked Questions
What image formats can I convert to ASCII art?
JPG, PNG, and WebP up to 20 MB. The image is decoded and processed entirely in your browser, so there's no upload wait and nothing leaves your device.
What's the difference between "Classic" and "Block" character styles?
Classic uses standard typable characters (.:-=+*#%@), so the output can be pasted anywhere plain text works: a terminal, a code comment, an email. Block uses Unicode shading blocks (░▒▓█) for smoother gradients, but it needs a font or terminal with Unicode support to display correctly.
Can I use the ASCII art in a GitHub README or terminal banner?
Yes. Click "Copy as Text" and paste it into a Markdown code block (```) so the spacing holds. For a terminal splash screen or CLI banner, the Classic style with a narrower column count (60-80) usually reads best.
Why does my pasted ASCII art look broken in "Diagram" mode?
Diagram mode only draws lines for recognized connector characters: -, |, +, box-drawing characters (┌┐└┘├┤┬┴┼), diagonals (/ \), and arrows. Anything else gets drawn as plain text instead of a line, which is fine for labels but can look odd if your art uses characters like * or ~ for shading instead of structure. Try Text or Pixels mode for those cases instead.
Why does my ASCII art look stretched or squashed compared to the original image?
Monospace characters aren't square: they're roughly twice as tall as they are wide. Sampling the image in a plain square grid would squash the output vertically, since each character would end up covering far more height than width. This tool corrects for that by sampling more source rows per row of characters than columns per column, so the proportions of the original image hold up.