A corrupt image usually means a truncated download, a bad chunk/CRC, or a malformed header — enough for a viewer to refuse the whole file even though most of the picture is intact. jpeg.repair re-decodes the image (tolerating truncation), drops the unreadable tail, and re-encodes a clean, valid .jpg that opens everywhere. Free, online, no watermark.
Why JPEG files get corrupted
JPEG files corrupt when a download or upload cuts off partway, when a memory card or disk drops bytes, or when a header or data block is overwritten. The pixels that arrived are usually fine — it's the framing around them that breaks — which is exactly what a rebuild fixes.
What repair can and can't recover
Repair works well for interrupted downloads, broken headers or indexes, and files that open in one program but not another. Data that never arrived can't be invented — a badly truncated file may only recover the top of the image, and the tool tells you honestly rather than hand back garbage.
Grey bars and half-loaded photos
A JPEG that shows as a grey box, or loads only halfway down, is the classic sign of a truncated file. Re-decoding what arrived and re-encoding it saves the recoverable part of the picture as a clean JPEG.