Skip to content
Upgfrog.online

Troubleshooting

QR codes on curved, glossy and awkward surfaces

Bottles, laminates, fabric and folds each break codes in their own way. What to do when the material is not flat white card.

By The Upgfrog Editorial TeamReviewed 7 min read
All articles
QR codes on curved, glossy and awkward surfaces — Troubleshooting guide from Upgfrog.

Short answer

Gloss reflects the phone's own light back into the lens, curves distort the grid, and fabric blurs module edges. Matte finishes, flatter placement and larger modules solve most of it. A code across a fold or seam is usually unrecoverable.

Gloss is the most common one

A glossy laminate is a mirror. When someone scans in a shop or a restaurant, the phone's own screen and the ceiling lights reflect off that surface and straight back into the camera, and the reflection lands as a bright patch across part of the code.

The frustrating part is that it is intermittent. The same code scans instantly at one angle and not at all at another, which makes it look like a code problem rather than a finishing problem.

A matte or satin finish over the code area solves it outright. Many printers will spot-matte a region while keeping the rest of the piece glossy.

What each surface does to a code. Gloss laminate: Problem Glare into the lens, Fix Matte varnish; Curved bottle: Problem Grid distortion, Fix Narrower code, flat panel; Fabric: Problem Blurred module edges, Fix Larger modules; Corrugated card: Problem Ridged, uneven ink, Fix Print on a label; Across a fold: Problem Grid broken in two, Fix Move the code; Dark substrate: Problem Inverted contrast, Fix Light plate behind.
What each surface does to a code

Curves

A decoder assumes a flat, square grid. Wrapping a code around a bottle or a jar bends the rows, and past a certain curvature the decoder cannot square it up again.

Two things help. Keep the code physically narrow relative to the diameter, so less curvature falls across it. And place it on the flattest available panel — most containers have one, even if it is small.

Very small diameters, like a lip balm tube or a cable, are effectively hopeless for a wrapped code. Use a flat tag or a label with a flag fold instead.

Absorbent and textured materials

Fabric, corrugated card, kraft paper and unfinished wood all blur the boundary between adjacent modules. Ink spreads into the material, dark modules grow slightly, light gaps shrink, and at small module sizes adjacent modules start merging together.

The fix is module size rather than error correction. Print the code larger, keep the payload short, and avoid dotted or thin module shapes which have less margin to lose.

Folds, seams and edges

A code crossing a fold is broken in a way nothing can fix. The two halves sit on different planes, and no amount of redundancy reconstructs a grid that is physically bent in the middle.

The same applies to seams between two materials, the gap in a shrink wrap, and the trim edge of a printed piece. Give the code its own flat, continuous area with margin to spare.

Dark and metallic substrates

Dark packaging tempts people to invert the code — light modules on a dark background. Some scanners handle inversion and many do not, so it is a genuine gamble.

The reliable approach is a light plate behind a normal dark-on-light code. If the design cannot accommodate a white rectangle, our Midnight template is built for this case: a dark plate with a luminous foreground, tested to decode at every resolution we check.

Metallic and foil substrates combine the gloss problem with an uneven reflection, and are best avoided under a code entirely.

  1. 1

    Choose the flattest, most matte area available

    Before anything else. Placement solves more than settings do.

  2. 2

    Size up and shorten the payload

    Bigger modules survive ink spread, glare and curvature better than more redundancy does.

  3. 3

    Ask for a spot matte finish over the code

    Cheap, and eliminates the most common failure on printed packaging.

  4. 4

    Test on the real material, at an angle, under real lighting

    Glare only shows up when you reproduce the conditions that cause it.

Frequently asked questions

Why does my QR code only scan from certain angles?
That is almost always glare from a glossy finish. The phone's own light reflects back into the lens and washes out part of the code. A matte finish over the code area fixes it.
Can a QR code go on a curved bottle?
Yes, if the code is narrow relative to the bottle's diameter and sits on the flattest panel available. On very small diameters, use a flat tag or a flag-fold label instead of wrapping.
Can I print a QR code on fabric?
Yes, but print it noticeably larger than you would on paper and keep the payload short. Fabric blurs module edges, so the protection you need is bigger modules, not higher error correction.
Should I invert a QR code for dark packaging?
Prefer not to. Inversion support varies between scanners. A light plate behind a normal code is more reliable, or use a design tested specifically for dark backgrounds.

Sources

Specifications and primary documentation referenced above.

Put this into practice

The generator shows a live contrast reading and warns about corner shape combinations our testing found unreadable, so you can catch these problems before you print.

Open the generator