Free ASCII Art Generator

Turn any photo into ASCII art — free, no sign-up, nothing leaves your browser.

Upload an image to convert it

🖼️
Drop an image here, or click to browse

How brightness becomes characters

The image is divided into a grid, and each cell's average brightness is measured, then matched to a character chosen for how visually "dense" it looks on screen — a period or space for the darkest areas, building up through symbols like :, +, and *, up to a solid-looking character like @ for the brightest. ASCII art predates graphical displays and became a way to represent images using nothing but the standard text characters every system could show, and it's stayed popular ever since in places like code comments, terminal output, and email signatures, where a real image file isn't practical or allowed. Because monospace characters are taller than they are wide, the grid isn't sampled as a plain 1:1 pixel grid — the row count is deliberately reduced to compensate, so the final result keeps the same proportions as the original photo instead of looking stretched.

Frequently asked questions

Why does the "detail" slider change how blocky it looks?

More columns means more characters sampled across the image, giving finer detail — fewer columns gives a chunkier, more abstract look. The row count is calculated automatically to keep the proportions correct.

Can I use the text version elsewhere, like in code comments?

Yes — "Copy as text" copies the raw characters, which will look correct in any monospace font. Proportional fonts will distort the shape.

Why does a portrait photo need fewer columns to look right?

Fewer columns means each character represents more of the original image, and since each character cell is naturally taller than it is wide, fewer columns also means fewer rows are needed to cover the same height — the tool balances this automatically either way, but very high column counts on a tall image can produce an extremely long result.

Does color come through in the result?

No — only brightness is used to choose each character, so the output is effectively a grayscale rendering of the image regardless of the original colors, though you can still pick a single accent color for how the text itself is displayed.

Is my image uploaded anywhere?

No. The conversion happens entirely locally in your browser — your image is never sent to a server.

Ad blocker detected

We've noticed an ad blocker is active. Cwtch.es relies on ads to stay free, so images downloaded while a blocker is active will include a small Cwtch.es credit line beneath the image. Disable your ad blocker for this site (or add it to your allow-list) and recheck to download without it.