Repair a broken QR code
When a camera gives up, tell it where the damage is. Marked damage costs half as much to recover.
Your photo is not uploaded. It is processed only in this browser.
Why this reads codes a camera cannot
QR codes carry Reed-Solomon recovery bytes. A camera does not know which bytes went bad, so it spends two recovery bytes on each one. Mark the location and each bad byte costs only one. That is the whole trick: the same code survives about twice the damage.
Three more things happen by themselves. Cells that looked borderline are set aside first. Padding after the message has a known value, so damage there costs nothing. And inverted or mirrored codes are recognized.
Corner squares, timing lines and alignment marks are not read at all here. They follow from the code size, so they are simply redrawn. A camera that fails because a corner square is covered often has nothing else wrong with it.
What it cannot fix
- More damage than the recovery bytes cover. Lost data is gone for good. At level L only about 7 percent of a code is recovery data. You can still get an estimate: surviving characters are read as they are, and small gaps get likely fills.
- Curved surfaces. Four corners cannot flatten a bottle or a cup.
- Heavy blur. If you cannot tell the squares apart in the photo, neither can this.
- Versions above 10. Codes larger than 57 by 57 cells are not supported.
Check before you open
A repaired link is only as trustworthy as the sticker it came from. Links never open by themselves here. Read the address first, and see how to check a QR code before scanning.