Skip to main content

Animated Morse Decoder

Read the blinking light in an animated GIF and turn its flashes into Morse code and plain text.

Some puzzles hide a message in an animated GIF of a blinking light or a flashing signal lamp. Upload one below and this tool measures the brightness of every frame, times the on and off flashes, and reads them back as Morse code and plain text. The timing is worked out automatically, so most blink GIFs decode straight away. Use the sliders only if a tricky signal needs a nudge.

Animated image

How it works

An animated GIF is a stack of still frames, each shown for a set number of milliseconds. This tool walks every frame, draws it to a canvas, and measures the average brightness across the whole picture. A bright frame is treated as the light being on, a dark frame as off.

The on and off threshold is set to the midpoint between the darkest and brightest frames, so the flashes separate cleanly. Frames of the same state are grouped into runs, and each run is measured by adding up its frame durations.

Short on runs become dots and long on runs become dashes, split by the dot or dash slider. Off runs become spacing: a short gap stays inside one letter, a medium gap separates letters, and a long gap separates words. The estimated dot unit is the shortest reliable flash, and the gap thresholds are multiples of it (about 1, 3, and 7 units). Finally the dots and dashes are read back through a standard international Morse table.