Home/Developer Tools/Image to ASCII Art
🖨

Image to ASCII Art

Turn a photo into ASCII art text you can paste anywhere

Free · No sign-up required

A picture made entirely of characters

ASCII art turns a photo into a grid of text characters chosen so their visual density mimics the image — dense characters like @ and # for dark areas, sparse ones like . and a plain space for light areas. It is one of the oldest tricks in computing, dating back to when text was the only display technology available, and it has never really gone away — terminal splash screens, retro-styled READMEs, and plain-text-only contexts all still use it.

How the conversion actually works

The image is resized down to a small grid — one output character per sample point — and each sample's brightness is mapped onto a ramp of characters ordered from visually darkest to lightest. A bright pixel becomes a light character or a space; a dark pixel becomes a dense character. Colour is discarded entirely in the classic form, since a plain-text character has no colour of its own — only brightness survives the conversion.

What makes a good source image

  • Clear, high-contrast subjects read far better than subtle, low-contrast photos — ASCII art has a fraction of the tonal range of a real image, so it needs strong differences to render recognisably.
  • Simple compositions — a single subject against a plain background — convert more legibly than busy, detailed scenes, which turn into visual noise at low character resolution.
  • Wide output widths give more characters to work with and therefore more visible detail, at the cost of the result no longer fitting a narrow terminal or chat window.

Why it looks distorted in some places you paste it

ASCII art depends entirely on being displayed in a monospace font, where every character occupies exactly the same width. Paste it somewhere that renders in a proportional font — most rich-text editors, many chat apps by default, most web pages — and the alignment collapses, since a narrow character like . and a wide one like @ no longer take up equal horizontal space. Code blocks, terminals, and plain-text areas that explicitly use a monospace font are the destinations where it renders correctly.

Frequently asked questions

Why does my ASCII art look scrambled when I paste it somewhere?

The destination is very likely using a proportional (non-monospace) font, where characters have different widths and the careful alignment breaks. Paste it into a code block, terminal, or plain-text area with a monospace font instead.

Can I get colour ASCII art?

Plain-text ASCII has no colour of its own. Some terminals support ANSI colour codes layered onto ASCII art, but that requires a terminal that understands those codes, not plain text pasted anywhere.

What resolution or width should I use?

Wider output shows more detail but needs a wider display to render without wrapping — 80 characters is a traditional terminal-safe width; narrower for chat and messaging contexts, wider for a dedicated code block or webpage.

Does the source image need to be black and white?

No — colour images work fine, since only brightness is used in the conversion. Colour information is discarded regardless of the source.

Why does a photo with lots of fine detail look messy as ASCII?

Each output character represents an average over a block of pixels, which is a large reduction in resolution — fine detail simply doesn't survive that averaging and reads as visual noise instead.

Is my photo uploaded anywhere?

No. The conversion runs entirely in your browser.

More tools in this category

🎚
Image Brightness & Contrast Adjuster
Adjust brightness, contrast, saturation and more with a live preview
🌗
Image Filter Effects
Apply blur, grayscale, sepia, invert and other CSS-style filters to an image
🔲
Image Grid Splitter
Cut an image into equal rows and columns for a social media grid post
SVG Stroke/Fill & PNG Converter
Convert SVG strokes to fills, or render an SVG to PNG
🔳
SVG Pattern Generator
Generate tileable SVG background patterns — dots, stripes, grids
Photo Censor / Pixelate Tool
Blur or pixelate a rectangular area of a photo before sharing it