~/charsets/minimal · five steps

Simple image to ASCII with five characters

A space and four pieces of punctuation. The minimal ramp keeps the same number of steps as the block charset but spends none of them on solid fills — every glyph is plain 7-bit ASCII surrounded by empty paper. The output reads as a sketch rather than as a photograph.

 .:*#
semaphore --charset minimal – □ ✕
[ how_the_ramp_works ]

One space, four marks, no grey

Semaphore reduces each cell of the image to a single brightness figure and then answers one question: which of five characters is closest? With only five answers available, most of the tonal information in the source is deliberately dropped.

01 measure the cell

Your column count sets the grid. Each cell is collapsed into one perceptual luminance value, so a saturated red and a pale blue of the same apparent brightness land on the same rung.

02 quantise to five

That value picks a slot: darkest stays a space, then ., then :, then *, and the brightest cells become #. Anything between two slots is rounded, not blended.

03 leave the paper alone

Because a period and a colon cover only a fraction of their cell, the ramp writes far less ink than a block or braille render. The whitespace is doing as much work as the marks.

That rounding is the reason minimal holds up when there is not much room. A sixty-eight step ramp needs many characters before its shades read as shading; give it forty columns and consecutive glyphs differ by an amount the eye cannot separate, so the picture turns into speckle. Five widely spaced steps still produce visible edges at the same size, because the jump from . to * is large enough to survive being tiny.

[ when_to_use_it ]

Pick minimal when the output has to stay small

choose minimal

Avatars, favicons rewritten as text, monogram-style logos, a one-line signature, a badge in a comment header — anything that has to stay legible inside a few hundred characters. Try 40–80 columns, push contrast up until the subject separates cleanly from the background, and switch invert on when the subject is light on a dark field. Simple silhouettes and hard-edged marks respond best.

choose something else

Faces, fabric and anything with soft gradients need mid-tones this ramp does not have: the detailed ramp carries sixty-eight shades, and braille packs eight dots into every cell for the sharpest result Semaphore can reach. If you want the same five steps but a filled, pixel-like surface instead of sparse punctuation, use blocks.

[ other_charsets ]

The other five charsets

standard

Ten shades of punctuation. The look most people mean by ASCII art.

detailed

Sixty-eight shades of punctuation and letters. The photographic ramp.

blocks

Four fills and a space. The same step count, painted rather than sketched.

binary

A space, a zero, a one. The code-rain look.

braille

Eight dots per character. The highest detail Semaphore can reach.

Five characters, nothing wasted.

Open the converter with the minimal ramp preselected, drop an image, and pull the column count down until the shape is all that is left. The conversion runs in your own tab and the bytes never leave it.

Open the minimal ASCII converter