Convert Image to ASCII Art

Convert an image into ASCII text art with adjustable width and density. Understand why character aspect ratio matters.

  • No file limits
  • No registration
  • Free forever
  • Images never leave your browser

Drop images here

or paste from clipboard (Ctrl/⌘ + V)

Supported formats: JPG, PNG, WebP, AVIF, SVG

Your images never leave your browser

All processing happens locally on your device. Nothing is uploaded to a server, stored, or tracked.

Turn any photo into character art you can copy as plain text or download, with adjustable width and invert options. The conversion runs locally, so your image is processed in your browser and never uploaded.

How it works

Why the width control changes everything

ASCII art is made from characters arranged in a grid, so the number of characters across is the main control over the result. A narrow width produces a small, sparse representation that fits in a code block or a comment and still reads as the subject. A wide width produces a much more detailed rendering, often a hundred or more characters across, which is large enough that it is only readable in a wide window. The width therefore decides not only the detail but whether the output is usable at all, and it is the first control to adjust.

  • A narrow width gives a small result that fits in a code block or a comment.
  • A wide width gives much more detail and needs a wide window to read.
  • Width decides both detail and usability. Adjust it first.
  • A very wide result can exceed the line length your context allows.

Character aspect ratio, and why text looks stretched

A character in a typical monospace font is taller than it is wide, usually roughly twice as tall, so a square grid of characters renders as an image that appears stretched vertically when displayed. The conversion compensates by sampling the image at half the vertical resolution of the horizontal, which means a 100 character wide result samples roughly 50 rows. Forgetting this is why a hand built ASCII image from a square source always looks tall and thin. The practical effect is that the output represents the proportions of the original reasonably, but not exactly, and adjusting the width is the practical way to compensate.

How the sampling relates to character shape
AspectEffectWhat to do
Characters are about twice as tall as wideLooks stretched verticallySample half as many rows as columns
Sampling at equal rows and columnsResult looks tall and thinHalve the vertical sampling
Dense characters used for dark areasMore tonal rangeInvert setting for a light background

NoteA character is about twice as tall as it is wide, which is why vertical sampling is halved.

Density and the character ramp

A conversion maps the brightness of each region to a character, and the set of characters used is called a ramp. A typical ramp runs from a space through increasing densities, and which ramp is used changes the character of the result. Characters with more ink, such as a hash or an at sign, represent darker areas. A ramp of only a few characters gives a blockier, higher contrast look, while a long ramp including punctuation gives a smoother, more tonal result. One practical detail matters: on a dark terminal, the assumption inverts, because a light character on a dark background reads as sparse rather than dense, and the setting to invert exists for that reason.

  • Brighter areas map to sparse characters, darker areas to dense ones.
  • A short ramp gives a blockier, higher contrast result.
  • A long ramp with punctuation gives a smoother tonal result.
  • On a dark terminal the mapping inverts. Use the invert setting.

NoteDark terminals need the invert setting, or the result will look inverted in tone.

What produces a good result

An image converts well when it has strong contrast between the subject and its background, because the characters need a clear brightness difference to be assigned meaningfully. A portrait with a plain background works, a logo in one colour works, a high contrast line drawing works. An image with a gradual gradient across the whole frame produces a uniform field of similar characters that says nothing. Increasing the contrast before converting helps more than any setting, and increasing the width helps, but neither rescues an image with no tonal separation to detect.

  • Strong subject and background contrast converts best.
  • A logo, a line drawing, and a portrait on a plain background all work.
  • A soft gradient produces a uniform field of near identical characters.
  • Raise the contrast before converting. It helps more than any setting.
  • Increase the width for more detail, within what your context allows.

NoteNo setting rescues an image with no tonal separation. Contrast first, then width.

Frequently asked questions

What is ASCII art?

A picture built from characters. Bright areas use dense symbols like @ and #, while dark areas use dots and spaces.

What images convert to ASCII best?

High contrast images with clear shapes work best. Photos with strong subjects and simple backgrounds read clearly as text art.

Can I use the ASCII art anywhere?

Yes, copy it as plain text for chat, code comments, terminal output or email, or download it as an image.