QR codes with a logo: overlay or picture code?
Most logo QR codes paste the logo over the middle and hope the error correction copes. PaintQR draws the logo with the code's own squares. The two look alike from a distance and behave very differently in print.
Updated 6 November 2026
How an overlay works, and where it breaks
A QR code carries redundancy: at the highest error-correction level, up to 30 % of its squares can be wrong and a reader still recovers the message. An overlay generator uses that budget to cover the centre with a logo. Nothing in the code knows the logo is there; the reader simply treats the covered squares as damage and corrects it.
That works on screen and on a clean print. It fails when anything else eats into the same budget: a small print where edges blur, a glossy card with a reflection, a crease, a smudge, a dim room. Each of those costs a few percent, and the logo has already spent twenty-five. Overlay codes are the ones that scan at the office and not at the table. The generator never told anyone, because it never tested the result.
How a picture code works
A QR code's data squares are not fixed: for a given message there are many valid arrangements, because padding, encoding choices and the mask leave free bits, and a web address can carry a harmless tail that adds more. PaintQR treats the code as a system of equations over those free bits and solves it so that the squares form the picture you gave it: the logo, a photo, a word. Nothing is pasted on top. Every square is a real data or redundancy square, so the error-correction budget is still there for the real world: the small print, the reflection, the crease.
The picture is drawn at the code's resolution, so a logo with fine lines loses them, and a photo becomes a halftone. PaintQR tells you how much of the picture came through and offers a higher detail level, which means a larger code with more squares.
What it costs, honestly
Picture codes need more paper per square than plain codes: 0.6 mm against 0.4 mm in our phone tests, because the picture uses contrast that a plain code would keep spare. They are also larger in squares, since the picture pushes the version up. A plain code for a short link prints at 2 cm; the same link as a picture code prints at 3 to 4 cm. If you need the smallest possible code, use a plain one. If the code is part of the design and will be printed at a sensible size, a picture code is the one that keeps scanning.
Overlay codes cost nothing extra in size, which is their appeal, and the reason they are everywhere.
How PaintQR checks each design
Before a design can be downloaded it is decoded by two independent readers, in colour and in black and white, including a deliberately blurred copy that stands in for a small or soft print. A design that does not pass is refused with a reason and a one-click fix; one that passes shows 'Scans well' with the measured minimum print size. We ran the same designs through an iPhone and an Android phone on printed sheets to set the sizes. No overlay generator we know of does any of this.
Choosing between the two
Use a plain code when it has to be tiny or when it is read by machines at speed. Use an overlay only on screen, where it is never printed small. Use a picture code wherever the code is part of a printed design that people see before they scan: a menu, a card, a label, a sign. And whichever you use, print one copy at the real size and scan it with two phones before the run.
Questions
Is a logo in the middle of a QR code safe?
On a clean print at a good size, usually. It spends most of the error-correction budget, so any further damage, reflection or blur tips it over. A picture code keeps that budget.
Can PaintQR put my full-colour logo in the code?
Yes, with the Colour style, which uses the logo's own colours for the picture squares. The code's dark squares stay dark so phones read them, and the result is checked before download.
Why does my logo look rough?
The picture is drawn with the code's squares, so detail smaller than a square is lost. Raise the detail level for more squares, or simplify the logo; the generator shows how much came through.
Will a picture code work with every phone?
It is a standard QR code and decodes in standard readers; we test with two decoders and two phones. Very old phones and very small prints are the limits, as for any code.