glunty

Image to ASCII Art

Convert any image into ASCII art. Drag-drop upload. Pure client-side.

 

What this tool does

Reads an image, samples its pixels, and maps brightness to characters at a fixed output width. The result is a text grid where dense characters represent dark pixels and sparse characters represent light pixels (or the reverse, with the invert toggle). Output is plain monospace text you can paste into a chat, an email signature, a code comment, or anywhere a fixed-width font is rendered. The image is processed locally; nothing is uploaded.

How to use it

Click the file input and pick an image. Adjust the output width: 80 is a typical terminal column count, 40 is good for chat, 200 is high-resolution but unwieldy. Choose a density: Dense uses ten gradients for fine detail, Block uses Unicode block characters for a more pixelated look, Minimal uses just five gradients for a more abstract feel. Toggle Invert if your text is dark on light (most contexts) versus light on dark (terminals).

Common use cases

  • Adding a logo or signature to a plain-text email.
  • Embedding a small image in a code comment, README, or chat message.
  • Producing nostalgic banner art for a CLI tool's startup output.
  • Quick-checking how an image will look at very low resolution before designing a favicon.
  • Sharing an image in a context that strips attachments but allows text.

Common pitfalls

  • Aspect ratio. Monospace characters are taller than they are wide (typically about 2:1). The tool compensates by sampling fewer rows than columns; if your output looks stretched, the source image's font assumption is off and you can adjust width to compensate.
  • Color is lost. ASCII art is grayscale by definition. Bright colors of similar luminance (red and green) collapse to the same density.
  • Render font matters. A "monospace" font that is not perfectly monospace (some emoji, some ligatures) will distort the output. View in a terminal or an editor with a true monospace setting for best results.

Frequently asked questions

Why is the output stretched or squished?
Monospace characters are taller than they are wide (typically about 2:1). The tool compensates by sampling fewer rows than columns, which preserves aspect ratio when rendered in a typical font. If your render font has different proportions, the output will look stretched. Adjust the output width or test in the actual font you intend to display in.
Can I get colored ASCII art?
Not from this tool. ASCII art is grayscale by definition. For colored "ASCII" you want ANSI color codes (terminal-only) or HTML with span colors (web-only). Neither is portable across contexts. The grayscale approach works in any monospace context: chat, email, code comments, terminals, plain text files.
Why does my image lose detail in the output?
Each character carries at most about 10 distinguishable brightness levels. Two distinct colors with the same luminance map to the same character. Faces, photographs, and gradient-heavy images often lose recognizable detail at low widths. High-contrast logos, line art, and silhouettes work best.
What is the right output width for chat, email, or code comments?
Chat: 30-50 chars. Email signatures: 40-60. Code comments: 60-80 (matches typical line-length conventions). Large displays: 120-200. Above 200 the output becomes unwieldy and small details get lost in the rendering at typical font sizes.
When should I invert?
Default (dense character = dark pixel) works for dark text on light backgrounds (most documents, most code editors with light themes). Invert (sparse character = dark pixel) works for light text on dark backgrounds (terminals, dark-mode editors). The output looks right when rendered against the background color you intended.
Is my image uploaded?
No. The image is read by the browser FileReader API and rendered to a canvas, all locally. Nothing is uploaded. The file never leaves your machine.

Embed this tool

Free for any use; attribution appreciated. Paste this on your site:

The embed runs the same tool that lives at this URL. No tracking; no ads inside the embed. Resize height as needed for your layout.

Cite this tool

For academic, journalistic, or technical references. Pick a format:

Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.

Embedded tool from glunty.com