Skip to content
AZ Tools

Image → ASCII Art

Convert any image to ASCII art with adjustable width, character set, and inversion — all in your browser.

How to use

  1. Drop or pick an image.
  2. Pick a width (characters per row) and character set.
  3. Toggle invert if the result looks like a negative of what you want.
  4. Copy the ASCII or download as a .txt file.

About this tool

Show

Turn a picture into ASCII art in the browser. The image is sampled down to the character width you choose, each cell's brightness is measured with the standard luma weighting that gives green the most influence and blue the least — closer to how an eye judges lightness than a plain average — and the result is mapped onto a ramp of characters ordered from dark to light. Cell height is compensated for as well, since a text cell is roughly twice as tall as it is wide, so the output keeps the original proportions instead of coming out stretched. Pick a denser or sparser character set for detail or for a poster look, and invert when the art is going on a light background rather than a dark terminal. Everything runs locally in your browser.

Frequently asked questions

How is brightness calculated?

Standard luminance formula: 0.299·R + 0.587·G + 0.114·B. The brightness maps to an index in the chosen character set.

Why does my output look squished vertically?

Monospace characters are taller than they are wide (~1.8:1). The tool compensates by scaling the height to about 0.55× the width. If your font has different proportions, adjust the width slightly.

Should I invert?

If you'll paste into a dark terminal, leave invert off — light pixels become dense characters. For a light page (white background), turn invert on so dark pixels become dense characters.

How big a width can I use?

Up to 400 characters wide. Past that, the ASCII becomes too big for most viewing contexts.

My transparent PNG came out as a solid block — why?

Only the red, green and blue channels are sampled; alpha is ignored. An untouched pixel on the canvas is (0, 0, 0, 0), so every transparent region reads as pure black and gets the darkest character in the ramp — a logo cut out on transparency becomes a filled rectangle. Flatten the image onto a white background before uploading, or turn on invert, which makes the transparent area the lightest character instead.

How many characters do the ramps have, and how large does the output get?

Four ramps: 3 characters for binary, 5 for blocks, 10 for standard and 69 for detailed — so detailed resolves about seven times as many brightness levels as standard, which matters on photographs and is wasted on flat graphics. Size comes from the width you pick: the height is width × (image height ÷ image width) × 0.55, so a square image at the 400 maximum produces 220 lines and roughly 88,000 characters. Paste that into a chat client and it will be truncated.

Related tools