Image to ASCII — questions answered
Short answers about the converter, privacy and export. Can't find yours? Open the image to ASCII tool and poke it — it can't break anything.
Do my images get uploaded anywhere?
Never. The conversion runs entirely in your browser using the canvas API; with the page open it keeps working even if you switch the network off, and only a reload needs a connection.
If you're the trust-but-verify type, read the privacy statement, then open devtools and watch the network tab stay silent.
Do you run analytics in my browser?
No. The page ships no analytics script, no cookies, and a Content-Security-Policy with connect-src 'none', so it cannot open a fetch, XHR or WebSocket to anywhere — including a Cloudflare Web Analytics beacon.
What the operator can see is aggregate HTTP traffic at the Cloudflare edge: which paths were requested and roughly how often. Those are server logs of the page load itself, not a second phone-home from your tab. Your image bytes never leave the device and are never part of those counts.
Is it free?
Yes — free, no account, no watermark, no daily quota. The whole tool ships as static files.
Does the site remember my settings?
Only small preferences stay on your device: color theme (CRT or paper), and the last charset and color mode you picked on the tool. They live in localStorage and never include image bytes. Reset params clears the tool prefs; URL query parameters still override them when present.
Which image formats can I feed it?
Anything your browser can decode: png, jpg, webp and gif (first frame). Drop it, paste it, or browse for it.
How do I get a sharper result?
Start from a high-contrast image with a tight crop. Push columns up to 160-200, nudge contrast +15, and try invert if your subject is dark-on-light.
For photographic detail, the braille charset is the sharp one.
What does braille mode actually do?
Each character becomes a 2×4 grid of dots from the Unicode braille block, dithered with Floyd–Steinberg — roughly eight times the spatial resolution of a classic ramp. The braille ASCII guide shows the full pipeline and a live example.
It needs a font with braille glyphs, which every modern OS has.
Can I keep the original colors?
Yes. Color mode original samples the source color per character, gray keeps neutral tones, and green is the classic phosphor look.
Color survives in the .png export; plain-text copies are characters only, by nature.
Can I use the output commercially?
The output is yours — posters, readmes, merch, client work, anything. We don't claim rights over your art.
Any size limits?
Semaphore does not impose a fixed source-dimension limit; practical limits depend on your browser and available memory. Output is capped at 40–240 columns. Dense braille at high column counts may take longer on older devices.
Is there a command-line version?
No. Semaphore is a web page by design: the whole engine is one MIT-licensed TypeScript file, and there is no CLI, API or npm package. For a terminal workflow use jp2a, chafa or ascii-image-converter; use Semaphore when you want a live preview, braille output, or the guarantee that the image never leaves your device.
Can I get ANSI color codes in the text?
No. Plain-text copies and .txt downloads are characters only, so they paste cleanly into a README, a comment or a MOTD. Color survives in the .png export and in the share card. A future ANSI export is not planned.
How is this different from other image to ASCII sites?
Three facts. Nothing is uploaded, and the deployed Content-Security-Policy (connect-src 'none') enforces that rather than promising it. The braille charset packs a 2×4 dithered dot grid into each cell, roughly eight times the spatial resolution of a classic ramp. And the source is MIT-licensed on GitHub, so every claim here can be checked against the code.
Still curious? The tool answers most questions in about ten seconds.
open the tool