How Do QR Codes Work?
A QR code stores data as a grid of black and white squares. A smartphone camera reads the pattern, applies error correction, and decodes the data — all in under a second.
The anatomy of a QR code
The three identical squares in three corners. They let the scanner locate and orient the code at any angle.
The alternating black-and-white lines between the finder patterns. They define the grid spacing and module size.
The thousands of black and white squares that encode the actual data as binary (1s and 0s).
The white border around the entire code. Required for reliable scanning — minimum 4 module widths.
Strips around the finder patterns that tell the scanner which error correction level and mask pattern to use.
Small squares inside larger QR codes that help the scanner correct for distortion or curved surfaces.
How scanning works — step by step
- 1Camera captures the imageThe phone camera takes a photo of the QR code and the image processor identifies the three square finder patterns in the corners.
- 2Decoder identifies the gridThe decoder aligns the grid, identifies the timing patterns, and reads each module (black or white square) as a bit (1 or 0).
- 3Error correction appliedThe Reed-Solomon error correction algorithm checks and repairs any damaged or misread modules — allowing codes to be scanned even if up to 30% is obscured.
- 4Data decoded and action triggeredThe binary data is decoded into text, a URL, or another data type. The phone then performs the action — opening a browser, connecting to Wi-Fi, saving a contact, etc.
QR code error correction levels
QR codes use Reed-Solomon error correction. Higher levels add redundancy so damaged or obscured codes still scan.
| Level | Recovery capacity | Best for |
|---|---|---|
| L (Low) | ~7% | Clean, indoor environments |
| M (Medium) | ~15% | Most general uses |
| Q (Quartile) | ~25% | Industrial or outdoor use |
| H (High) | ~30% | QR codes with logos, rough surfaces |
Static vs. dynamic QR codes — the technical difference
The full URL or data is encoded directly into the modules. The pattern is fixed — changing the destination requires generating a new QR code and reprinting.
Only a short redirect URL (e.g., dynamicqrcreator.com/r/xyz) is encoded. The server redirects to the real destination, which you can change at any time. Scan analytics are recorded on the server side.
Common questions
How does a QR code store data?
A QR code stores data as a pattern of black and white squares (modules) arranged in a grid. Each module represents one bit. The arrangement encodes characters using a binary system defined in the ISO/IEC 18004 standard.
Why can damaged QR codes still be scanned?
QR codes use Reed-Solomon error correction, which adds redundant data to the code. Level H (High) error correction allows up to 30% of the code to be damaged or obscured and still scan correctly — this is why QR codes with logos in the center still work.
What are the three squares in the corners of a QR code?
The three square patterns in the corners are called 'finder patterns' or 'position detection patterns'. They allow the scanner to locate and orient the QR code regardless of angle or rotation.
How is a dynamic QR code different from a static one technically?
A static QR code encodes the full URL directly in its modules — the data is permanent. A dynamic QR code encodes only a short redirect URL (e.g., dynamicqrcreator.com/r/abc123). When scanned, the server redirects to the actual destination, which can be changed at any time without altering the printed code.
What are the four QR code error correction levels?
Level L (Low): ~7% recovery. Level M (Medium): ~15% recovery. Level Q (Quartile): ~25% recovery. Level H (High): ~30% recovery. Higher correction creates a denser, more complex code. Use Level H when adding a logo or printing on rough surfaces.