Image to ASCII
Turn a local image into character art with a live preview and script-free TXT, HTML and SVG exports.
This tool processes its input contents in your browser instead of sending them to a processing service. Page, asset and fixed usage-measurement requests are described on the Privacy page.
Convert local image brightness into character art with TXT, self-contained HTML and SVG exports.
How to use it
- 1Choose one local JPEG or still PNG.
- 2Review the automatic ASCII picture.
- 3Optionally change columns, transparency background or reverse the ramp.
- 4Download TXT, HTML or SVG.
Example
- Input
- 10 × 2 pixels: five black then five white per row; 10 columns.
- Output
- One row with five @ characters followed by five spaces and a newline.
Rows assume characters about twice as tall as wide; text-editor fonts can change the shape.
What happens to your data
Pixel decoding, luminance calculation and character generation all happen in this browser tab. The photo is not uploaded or stored persistently. Exports omit its filename and metadata; they can still show a recognizable subject. Generated HTML/SVG contains no script or external font.
Last updated November 2026
Turn a picture into text art in the browser. Choose a local JPEG or still PNG and an ASCII preview appears automatically. Download plain TXT for a terminal or editor, a self-contained HTML page, or an SVG for a document or design tool. Optional settings change the text width, transparency background or light/dark character mapping.
This image to ASCII converter represents light and dark regions with a fixed set of ordinary characters. It is useful for a playful poster, a terminal-friendly graphic or a lightweight text-art experiment. It does not recognize words in a screenshot, recover hidden image details or perform image-to-text OCR. Small subjects and strongly contrasting shapes usually remain more recognizable than fine low-contrast detail.
How it works
The supported image is decoded to 8-bit sRGB canvas pixels and composited onto white or black before measuring brightness. Each color channel is converted to linear light, then combined using the 0.2126 red, 0.7152 green and 0.0722 blue luminance weights. Source pixels are assigned to rectangular output cells; each cell's average luminance selects one character from the fixed dark-to-light ramp @%#*+=-:. followed by a space. Reversing the mapping changes which end of that ramp represents light areas.
The selected width is 10–200 columns; images narrower than the requested width use no more columns than source pixels. Rows are rounded from image height/width multiplied by columns and 0.5. That factor assumes characters are about twice as tall as they are wide. The preview uses a 14-pixel generic monospace font with a 16-pixel line height. TXT depends on the reader's font and line spacing. HTML uses the same approximate monospace line geometry, while SVG fixes the line geometry and adjusts each row's text length. Fonts and renderers can still change the appearance; this is not exact reconstruction of the photograph.
The art is monochrome on a white page. Choosing black for transparency changes how source alpha contributes to brightness, not the page's background. Plain TXT contains the characters and line breaks only. HTML adds a small settings caption, restrictive content policy and inline presentation style, without scripts or remote assets. SVG contains a white background and escaped text rows, without a photo embed, script or external font. No source filename is copied into the output.
A file is limited to 20 MiB, 16 million decoded pixels and 8,192 pixels per side. Only supported still 8-bit PNG and JPEG are accepted. At most 200 rows and 40,000 character cells are allowed; a very tall image may need fewer columns. Each export must stay below one MiB. Clear and replacement remove old results, settings changes prepare a fresh output, and cancellation prevents an earlier job from exposing a new download. Bounded decode and processing steps can finish before cancellation takes effect.
Worked example: Black on the left, white on the right
- Input
- An opaque 10 × 2-pixel image: each row starts with 5 black pixels and ends with 5 white pixels. Use 10 columns, normal mapping.
- Result
- One 10-character row: five @ symbols followed by five spaces, then a line break.
The output is 10 columns × 1 row under the two-to-one character-cell assumption. Whitespace is meaningful in TXT.
Common use cases
- Creating character art for a terminal or README draft
- Making a monochrome text-art poster from a simple image
- Saving script-free SVG character art
- Exploring how luminance and resolution change a picture's recognizable shape
Frequently asked questions
Is image to ASCII the same as recognizing text in an image?+
No. It draws the picture with brightness characters. It does not read words or return a caption. Use an OCR tool when you need selectable text from a scan or screenshot.
Why does the picture look stretched in my text editor?+
Plain text carries no font or line-spacing settings. Use a monospace font and an approximately two-to-one cell height/width. The SVG download fixes the row geometry more explicitly; exact glyph appearance can still depend on fonts.
What does the transparency setting do?+
It blends transparent source pixels onto white or black before calculating luminance. The downloaded art still uses a white page with dark text. Reverse the ramp if you want a different light/dark character pattern.
Why was a very tall image refused?+
The requested width would produce more than 200 rows or 40,000 cells. Choose fewer columns or crop the image before converting. The tool refuses the oversized layout instead of silently distorting the aspect ratio.
Can the downloaded HTML run code or contact a server?+
The generated file contains escaped character text and fixed local styles, no script, no external fonts and no embedded original image. Its content policy blocks other resources. This describes this generated export, not arbitrary HTML obtained elsewhere.
Does the photo leave the browser?+
The conversion reads and processes the file locally in the current tab and writes no persistent photo history. Nothing in the tool uploads its pixel data or filename. Character art can still reveal the subject, so local processing does not anonymize the picture.
Related tools
Image Grayscale
Make a photo grayscale with a clear brightness method and a transparency-preserving PNG.
Image Threshold
Convert an image to two-tone black and white, with a threshold and explicit alpha controls.
Image Resizer
Resize images to exact dimensions right in your browser.
Image OCR — Extract Text
Extract text from a photo, cancel recognition, correct the result and download TXT locally.