Convert any image or photo to ASCII art
This free image to ASCII art converter turns a photo, logo, screenshot or illustration into text art made of characters, right in your browser. Nothing is uploaded: the picture is decoded on a canvas on your own device, scaled to the width you choose, and every cell is replaced by a character whose ink density matches the brightness underneath.
It reads JPG, PNG, WebP and GIF files as well as HEIC photos from an iPhone, which are converted locally first. Choose from 12 character sets, from the ten-step simple ramp to dense detailed glyphs, block shading and katakana, or switch the renderer to Braille dots or half blocks for twice the vertical resolution. Color modes cover monochrome phosphor (green, amber, cyan, pink and more), grayscale, full color, HTML and 24-bit ANSI for terminals.
When the preview looks right, copy it as plain text or export a TXT file, a styled PNG, a short animated GIF with a retro effect such as CRT scanlines or matrix rain, or a self-contained HTML page that keeps the colors. Output width runs from 40 to 200 columns, so the same image can become a tiny chat sticker or a detailed wallpaper.
Working with motion instead of stills? Use the animated GIF to ASCII converter, the video to ASCII converter or the live webcam ASCII camera.
Examples: one image, three looks
These samples were rendered by the same converter that runs on this page, from a shaded sphere and a heart shape, at 16 to 20 columns wide.
+++:
+#%%%%%##*+-
:#@@@@@%%%##**:
#@@@@@%%%###**+-
+%%%%%%%####**+:-.
+#########***+:--.
**###*****+::---
++**++++::---.
-:::-----. ░░░░
░▒▓▓▓▓▓▓▒▒░░
░▓█████▓▓▓▓▒▒▒░
▓█████▓▓▓▓▒▒▒▒░░
░▓▓▓▓▓▓▓▓▓▒▒▒▒░░░
░▒▓▓▓▓▓▒▒▒▒▒▒░░░░
▒▒▒▒▒▒▒▒▒▒░░░░░░
░░▒▒░░░░░░░░░
░░░░░░░░░⠀⣠⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⣦⠀ ⠠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆ ⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀ ⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⠿⠋⠀⠀⠀ ⠀⠀⠀⠀⠀⠈⠙⠿⠿⠋⠁⠀⠀⠀⠀⠀
How it works
- Drop, paste or upload an image (or load one from a URL with the
urlcommand). HEIC photos are converted to a bitmap locally. - The image is drawn to a hidden canvas and downsampled to your output width. Rows are halved because monospace characters are about twice as tall as they are wide.
- Each cell's perceived lightness is computed in linear light and adjusted by the brightness, contrast and invert settings.
- Lightness is mapped to a glyph from the active charset (or to a Braille or half-block pattern), optionally with dithering and edge glyphs.
- The color mode tints each glyph, and the result is ready to copy or export as TXT, PNG, GIF or HTML.
Pick the right character set
Each charset trades detail for readability. Use the charset command in the terminal, or tap the charset button on mobile, to switch between them.
| Charset | Sample | Best for |
|---|---|---|
| simple | .:-=+*#%@ | Clean line art, logos, high-contrast photos |
| detailed | .'`^",:;Il!i><~+_-?][}{1)(|/tfjrxnuvc... | Portraits and photos with smooth gradients |
| blocks | ░▒▓█ | Pixel art, retro game screenshots, posters |
| dots | ⠁⠂⠃⠄⠅⠆⠇⡀⡁⡂⡃⡄⡅⡆⡇ | Braille-style halftone, dense detail |
| minimal | .*# | Tiny icons, terminal splashes, banners |
Frequently asked questions
- How does an image to ASCII converter work?
- The converter samples your image at the chosen output width, measures the perceived brightness of each cell, and replaces it with a character from the active charset: dense glyphs for dark areas, sparse glyphs for light ones. asciify.art does this entirely in your browser with the Canvas API, so the image is never uploaded.
- What image formats can I convert?
- JPG, PNG, WebP, GIF and HEIC/HEIF photos from iPhone (converted locally before processing), plus anything else your browser can decode such as BMP or AVIF. Drag and drop a file, paste from the clipboard, or load a picture from a URL with the 'url' command. Animated GIFs play back frame by frame.
- Is the image uploaded to your server?
- No. Image to ASCII conversion runs 100% client-side. The pixels never leave your device. Only when you choose 'Save to gallery' is the resulting ASCII text (not the source image) sent for public sharing.
- Which character set should I pick?
- Use 'simple' for line art and logos, 'detailed' for portraits, 'blocks' for pixel-art-style output, 'dots' for halftone-like density and 'minimal' for ultra-compact banners. For the finest detail, switch the renderer to Braille, which packs a 2x4 dot grid into every character.
- How can I improve the result for photos?
- Increase the output width to 120-200 columns, use the 'detailed' charset, and toggle 'invert' if your photo has a dark background. Crop the image to the subject before converting, raise the contrast slider for flat photos, and try dithering for smoother gradients in short charsets.
- Can I keep the colors of the photo?
- Yes. Switch the color mode to full color or HTML to tint every character with the pixel underneath, or to ANSI to copy 24-bit terminal escape codes. Monochrome phosphor modes (green, amber, cyan, pink and more) give the classic terminal look.
PixelDen — Free Pixel Art Games
Play 16+ free retro games in your browser. Arcade, puzzles, tower defense & more — with leaderboards and achievements.
Play Now→PixelDen — Free Pixel Art Games
Play 16+ free retro games in your browser. Arcade, puzzles, tower defense & more.
Play Now→