Braille Art from Image Generator
Convert any image to Unicode Braille art text. Upload a photo and generate stunning dot-pattern ASCII art using the full 256-character Braille block.
About
Unicode Braille characters (U+2800 - U+28FF) encode 256 unique dot combinations in a 2ร4 cell grid. This tool samples image luminance using the ITU-R BT.601 coefficient set (L = 0.299R + 0.587G + 0.114B) and maps each cell block to the corresponding Braille codepoint. The result is a dense, copy-pasteable text representation of any photograph or graphic. Incorrect threshold selection collapses tonal range into either blank space or solid blocks. Optional Floyd-Steinberg dithering distributes quantization error to neighboring cells, preserving gradient detail that simple thresholding destroys.
Output width is measured in Braille characters, where each character covers 2 horizontal and 4 vertical pixels of the sampled image. Terminal fonts render characters approximately twice as tall as wide, so the tool applies automatic aspect ratio correction. This approximation assumes monospaced display at standard line-height. Results degrade on proportional fonts or non-standard terminal configurations.
Formulas
Pixel luminance is computed from RGB components using the ITU-R BT.601 standard weighting:
Each output character represents a 2ร4 block of sampled pixels. The Braille Unicode codepoint is constructed by bitwise OR of dot flags:
where doti โ {0, 1} is determined by comparing cell luminance against threshold T: doti = 1 if Li < T. The dot-to-bit position mapping follows the Unicode standard: positions (0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (0,3), (1,3) map to bits 0 - 7 respectively.
Floyd-Steinberg dithering distributes quantization error e to four neighboring pixels with weights:
where e = Lactual โ Lquantized.
Reference Data
| Parameter | Value / Range | Notes |
|---|---|---|
| Unicode Block | U+2800 - U+28FF | Braille Patterns, 256 characters |
| Dots per Character | 8 (2ร4 grid) | Dot 1-6 classic + dots 7,8 extended |
| Blank Character | U+2800 (โ ) | All dots off |
| Full Character | U+28FF (โฃฟ) | All 8 dots on |
| Luminance - Red | 0.299 | ITU-R BT.601 coefficient |
| Luminance - Green | 0.587 | ITU-R BT.601 coefficient |
| Luminance - Blue | 0.114 | ITU-R BT.601 coefficient |
| Typical Output Width | 60 - 160 chars | Depends on target display |
| Aspect Correction Factor | ≈0.5 | Vertical scale halved for terminal fonts |
| Dithering: Floyd-Steinberg | 7/16, 3/16, 5/16, 1/16 | Error diffusion weights |
| Threshold Range | 0 - 255 | Lower = more dots filled |
| Max Safe Resolution | 4096ร4096 px | Canvas memory limit on mobile |
| Dot Bit Mapping (col,row) | (0,0)=bit0, (0,1)=bit1, (0,2)=bit2, (1,0)=bit3, (1,1)=bit4, (1,2)=bit5, (0,3)=bit6, (1,3)=bit7 | Unicode Braille standard encoding |
| Output Encoding | UTF-8 | Required for Braille character display |
| Supported Input Formats | PNG, JPEG, GIF, BMP, WebP, SVG | Any browser-decodable image format |
| Empty Row Character | U+2800 repeated | Preserves spacing in blank regions |