Image to ASCII Art

Free · no sign-up · nothing uploaded

Image to ASCII Art

Drop a photo or logo and get copy-paste-ready ASCII in monochrome, ANSI-256 or truecolor — width-tuned to fit a code comment, a README block or a Discord message. Every pixel is sampled in your browser; the file never leaves it.

PNG · JPEG · WebP · GIF 40–200 columns mono / ANSI 256 / truecolor works offline

Convert an image

› 100% local · no upload · no account

No image handy?

38 rows tall · height follows the source aspect ratio with a 0.5 character-cell correction.
Mono pastes into any code comment; ANSI pastes into terminals and Discord; Truecolor also switches on “Copy HTML”.

ascii-art.txt

waiting for an image

waiting for an image


      

Output is exactly width × rows cells; the copy text, the download and the ANSI stream are all built from the same pixel grid.

How it works

Three steps, no uploads — every pixel stays on your device.

1 · Drop the image

Drag a file onto the dashed zone, tap it to open your picker, or paste from the clipboard. It is read with a local object URL, never sent anywhere.

2 · Set width + style

The image is drawn to an offscreen canvas width characters wide, one pixel per cell. Height follows the aspect ratio with the 0.5 character-cell correction, so nothing is stretched.

3 · Copy or download

A single getImageData pass gives each cell's average colour and luminance, which maps onto your chosen ramp — then copy, save the .txt, or grab the HTML.

Built to look right, not just to convert

The details that separate a recognisable portrait from a grey smear.

Aspect-true cells

Monospace glyphs are about twice as tall as they are wide, so rows are halved — a 2:1 photo at 100 columns comes out 25 rows tall.

Auto-levelled brightness

Luminance is stretched between the 2nd and 98th percentile of the sampled cells, so dark, hazy or low-contrast shots still spread across the full ramp.

Runs, not per-pixel spans

Adjacent cells of the same colour merge into one span, keeping the HTML small enough for a README. The live char count tells you the size before you copy.

Terminal-accurate ANSI

Each pixel snaps to its nearest xterm-256 index and is previewed in the exact RGB that palette shows, so the Discord copy matches the preview.

Transparent pixels on white

The sampling canvas is filled white first, so PNG logos with alpha give clean silhouettes instead of black boxes.

Offline by design

Nothing is fetched while converting — no uploads, no keys, no rate limits. The page keeps working with the network switched off.

FAQ

Is my image uploaded or stored?

No. The file is read locally with a browser object URL and drawn to a canvas on your machine. There is no endpoint to send it to and no history — reload the page and it is gone.

Which formats are supported?

Anything your browser can rasterise: PNG, JPEG, WebP, GIF (first frame only), BMP and AVIF on browsers that decode it. SVG, HEIC, TIFF and PDF are rejected with a clear message, because the canvas cannot draw them.

What are the size limits?

Up to 25 MB per file. Images larger than 800 px on the long edge are pre-scaled before sampling, and anything over 12000 px is refused — the grid is at most 200 columns wide, so extra pixels would be discarded anyway.

The result looks washed out or almost blank.

Try the Detailed ramp, raise the width, or pick a higher-contrast crop. Very light logos and fully transparent areas composite onto white, so they legitimately come out as spaces.

ANSI 256 or Truecolor — which should I use?

ANSI 256 embeds ESC[38;5;Nm colour codes and pastes into terminals, IRC and Discord (wrap it in a fenced ansi block). Truecolor emits span elements with 24-bit hex colours for README files and HTML pages, and unlocks the Copy HTML button.

Copy did nothing — the clipboard was blocked.

Some embeds and older Safari builds refuse clipboard writes without HTTPS or a user gesture. The tool then reveals an auto-selected textarea so you can finish with Ctrl/Cmd + C, and only claims success when the copy really happened.

Can I animate it or convert a whole folder?

No — animated GIFs and WebP use their first frame, and there is no batch mode. Convert one image at a time, then tweak width and style until it fits the target.

Latest updates

More free tools

Step-by-step guides in our blog & guides.

محول فيديو الى Mp3 Calcul Consommation Essence Trajet PDF to Image Converter Photo Compressor To 40kb Online Invoice Generator Free Rpg Generator For Maps Online Receipt Generator Image Compressor To 50kb Jpg Accurate Calorie Calculator محول العملات من دولار لريال