Image to ASCII Art Converter
Convert any image to ASCII art in your browser. Adjust resolution, character density, color mode, and export as text or HTML. No upload required.
About
ASCII art representation maps pixel luminance to a density-sorted character ramp. The perceived brightness of each pixel block is computed via the ITU-R BT.601 luma formula: L = 0.299R + 0.587G + 0.114B. Characters with greater glyph coverage (like @ or #) represent dark regions. Characters with minimal coverage (like . or a space) represent bright regions. Getting the aspect ratio wrong produces vertically stretched output because monospace characters are roughly twice as tall as they are wide. This tool corrects for that with a 0.5 cell aspect ratio. Resolution is capped by character count, not pixel count, so a 1920ร1080 image can be faithfully represented in 200 columns.
The color mode preserves average RGB per cell block and applies it as an inline style to each character. This approximation works well at moderate resolutions but degrades at very low column counts where each cell spans hundreds of source pixels. The tool processes everything locally in your browser via Canvas API. No server upload occurs. Export options include plain .txt (monochrome) and self-contained .html (color-preserving).
Formulas
The core conversion maps pixel luminance to a character index in a density-sorted ramp.
Perceived luminance (ITU-R BT.601):
L = 0.299 โ R + 0.587 โ G + 0.114 โ BCharacter index from luminance:
i = floor(L255 โ (n โ 1))Effective cell dimensions with aspect correction:
cellW = round(imgWcols)cellH = round(cellWaspectRatio)
rows = floor(imgHcellH)
Where L = perceived luminance (0 - 255), R, G, B = red, green, blue channel values, n = number of characters in the ramp, i = index into the character ramp, cols = desired output width in characters, aspectRatio = character width-to-height ratio (typically 0.5 for monospace fonts), imgW and imgH = source image dimensions in pixels.
Reference Data
| Character Ramp Name | Characters (Dark โ Light) | Density Levels | Best For |
|---|---|---|---|
| Standard 10 | @%#*+=-:. | 10 | General purpose, good contrast |
| Extended 16 | $@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. | 70 | High detail, fine gradients |
| Block Only | โโโโ | 5 | Retro terminal look |
| Minimal 5 | #=:. | 5 | Low resolution, bold output |
| Dots | @โโโโ | 6 | Artistic dot-matrix style |
| Binary | 10 | 3 | Matrix-style effect |
| Custom | User-defined | Variable | Specialized artistic control |
| Luminance Coefficients by Standard | |||
| ITU-R BT.601 (SD) | Rร0.299 + Gร0.587 + Bร0.114 | - | Default, best for art |
| ITU-R BT.709 (HD) | Rร0.2126 + Gร0.7152 + Bร0.0722 | - | HD video content |
| Average | (R + G + B) รท 3 | - | Fast approximation |
| Aspect Ratio Correction Factors | |||
| Monospace (typical) | Cell ratio 0.5 | - | Most terminals & code fonts |
| Courier New | Cell ratio 0.55 | - | Print output |
| Consolas | Cell ratio 0.48 | - | Windows terminals |
| Recommended Resolution by Use Case | |||
| Social media post | 80 - 120 columns | - | Readable on mobile |
| Terminal display | 120 - 200 columns | - | Standard terminal width |
| Print (A4) | 150 - 250 columns | - | Font size 4 - 6pt |
| High detail poster | 300 - 500 columns | - | Large format printing |
| Common Image Aspect Ratios | |||
| Square | 1:1 | - | Instagram, profile photos |
| Landscape (HD) | 16:9 | - | Screenshots, video stills |
| Portrait (Phone) | 9:16 | - | Mobile screenshots |
| Classic Photo | 4:3 | - | Digital camera output |