A private study in reduction
Every image,
reduced to its truth.
Binary, ASCII, color, and more.
Upload a photograph, or paste a screenshot. Choose a resolution up to 255 × 255, and watch it resolve into a field of ones and zeros: legible to a machine, luminous to the eye.
Begin →The method
A plain mechanism, precisely applied.
Each pixel gets reduced to a single number using perceptual luminance, the same weighting your eye already applies: green counts for more than red, and blue counts for the least of all.
R, G, B: the pixel's red, green and blue channels, each 0–255
Y: the resulting luminance, the pixel's brightness alone
τ: the threshold you set above, default 128
bit: the final value. 1 is written white, 0 is written black
The image gets resampled to the exact width and height you set, each one independent, each capped at 255 pixels. Pick dimensions that don't match the original's proportions and it will stretch. Ask for fewer pixels and you get fewer pixels, trading detail for a clearer structure on purpose.
A low resolution doesn't just lose detail quietly. It can blend two genuinely different tones, like a letterform against its background, into one muddy pixel. There's no AI judgment call here: the tool looks at the block of source pixels behind each output pixel and checks whether that block spans a real jump in brightness.
max(Y) − min(Y): the brightness spread inside one output cell's source block
conflict: the share of cells losing a real transition at this size
“Increase resolution & contrast for clarity” stays dim while conflict is under 8%. Past that point it lights up. Pressing it grows width and height a step at a time, rechecking after each step, until the image reads clearly or hits the outer limit of 2048px. It never jumps straight there.
It's also not locked to the source image's original proportions. At each step it tries growing the width alone, the height alone, and both together, then keeps whichever cuts conflict the most. So if stretching the image away from its natural ratio genuinely reads clearer, which happens often with screenshots and other flat, high-contrast images, the tool will do that instead of holding the line on proportions for their own sake.
Resolution isn't the only thing that decides legibility. A photo that's globally too dark or too bright washes out to nearly all 0s or all 1s even at a sharp resolution. So the same button also re-picks the threshold, using Otsu's method: it scans the image's actual luminance histogram for the cutoff that best separates dark tones from light ones, instead of assuming a flat default of 128 works for every photo.