Image to
ASCII
converter
A free image to ASCII converter that runs on your device — open the tool and drop a photo.
Nothing is uploaded. Tune charset, density and color, then paste the ASCII art into a terminal, README, chat, or comment.
Watch an image become ASCII
Drop, convert, retune — replayed live by the real engine, not a video. Same converter you drive by hand on the tool page.
captured live from the engine on this page — open the image to ASCII tool to drive it yourself.
ASCII art charsets for every texture
The charset is the alphabet of your image to ASCII conversion. Classic ramps read well in any monospace font; blocks suit posters; binary leans cyberpunk; braille ASCII packs a 2×4 dithered dot matrix for photographic detail. Every charset now has its own page: standard, detailed, blocks, minimal, binary and braille. Four of the six run live below from the same portrait.
rendered live in your browser by the same engine that powers the converter — try your own photo as ASCII art.
| charset | characters | steps | best for | portability |
|---|---|---|---|---|
| braille | 2×4 dot cells | 9 tones · 256 patterns | The most detail available. Eight dots per cell, dithered, so a face keeps its structure at low column counts. | Needs a font with braille glyphs. JetBrains Mono has none, so it falls back to a system face. |
| detailed | .'`^",:;Il!i~+_-?][}{1)(|\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$ | 68 | Photographs and portraits. Adjacent shades differ by roughly 1.5%, which is what keeps a cheekbone readable. | Plain 7-bit ASCII. Safe anywhere. |
| standard | .:-=+*#%@ | 10 | The classic look, and the safest default when you do not control the destination font. | Plain 7-bit ASCII. Safe anywhere. |
| blocks | ░▒▓█ | 5 | Pixel-art and poster looks. Each glyph paints its whole cell, so regions merge into flat areas. | Unicode block elements. Most terminals have them; some README renderers substitute a font. |
| minimal | .:*# | 5 | Small sizes — icons, avatars, anything under about sixty columns where a long ramp turns to speckle. | Plain 7-bit ASCII. Safe anywhere. |
| binary | 01 | 3 | Silhouettes and the code-rain look. Three steps leave no gradient, so shape survives and tone does not. | Plain 7-bit ASCII. Safe anywhere. |
Frequently asked questions
How does Semaphore convert images to ASCII without uploading them?
Semaphore runs entirely in the browser using the HTML5 Canvas API. When you drop an image, the browser decodes it in memory, samples pixel luminance via Rec. 709 luma, and maps values to monospace characters or braille dot patterns. The production site enforces connect-src 'none', cryptographically guaranteeing that zero image data ever leaves your device.
Why does Unicode braille ASCII art have eight times the detail of character ramps?
Standard character ramps use one character per sample. Braille mode uses the Unicode Braille Patterns block (U+2800–U+28FF), mapping each character cell to a 2×4 dot subgrid with Floyd–Steinberg error diffusion dithering. This yields 2× horizontal and 4× vertical resolution within identical monospace column limits.
Can I use generated ASCII art in GitHub READMEs and terminal logins?
Yes. Output can be copied as plain text or downloaded as a .txt file. For GitHub READMEs, enclose it in a fenced code block (```text) around 60–80 columns. For Linux/macOS SSH MOTD banners, save it to /etc/motd to greet SSH logins with clean 7-bit characters.
Which image formats and operating systems are supported?
Semaphore supports PNG, JPEG, WebP, GIF (first frame), SVG, and AVIF on modern browsers across macOS, Windows, Linux, iOS, and Android with no software installation or registration.
Is there a command-line (CLI) version available?
Yes. A zero-dependency CLI tool and NPM package is available: run npx semaphore-ascii <image> directly in your terminal without installation. It brings Semaphore's 6 charsets, Floyd–Steinberg braille dithering, CRT styling, and file export into local terminal workflows.
The rest of the site has its own job
The controls live on the converter. Where the characters go is on use cases, with a README banner guide and an SSH MOTD guide. Upload, formats and limits are answered once, on the FAQ.