Gratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teamsGratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teamsGratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teamsGratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teams
Alle artikelen
Een QR-code met een gecentreerd logo en een groen vinkje, naast een meter van vier balken bekroond met een schild.
Uitleg

QR-code foutcorrectie: hoe ver kun je een code branden (L, M, Q, H uitgelegd)

Foutcorrectie (L, M, Q, H) bepaalt hoeveel je een QR-code kunt branden. Leer wat 7/15/25/30% echt betekent, hoe groot een logo mag zijn, wat met kleur kan, en waarom minder data coderen de beste truc is.

ScanKit

ScanKit · Organization

· 15 min. leestijd

Een klant stuurt je een prachtige QR-code op met hun logo midden in beeld, een merkkleur op de modules en ronde stippen in plaats van vierkantjes. In de artwork ziet het er top uit. Vervolgens weigert de helft van de testtelefoons om hem te scannen, en de drukdeadline is morgen. Bijna elke gebrande QR-code die faalt, is terug te voeren op één verkeerd begrepen functie: foutcorrectie. Snap je wat die echt doet, dan kun je een code met vertrouwen branden in plaats van met giswerk.

Dit is de uitleg voor bureau-ontwerpers en accountmanagers die een code nodig hebben die zowel on-brand als betrouwbaar scanbaar is. We behandelen wat foutcorrectie eigenlijk is, de vier niveaus en hun echte cijfers, hoe ver je een logo kunt oprekken, wat je wel en niet met kleur kunt doen, en de ene truc die alles overtreft: om te beginnen minder data coderen.

Wat QR-code-foutcorrectie eigenlijk is

Foutcorrectie is redundantie die in de code is ingebouwd. Wanneer een QR-code wordt gegenereerd, voegt de encoder extra Reed-Solomon-codewoorden toe naast de datacodewoorden. Een codewoord is een blok van acht modules (de kleine zwarte en witte vierkantjes). Als sommige modules later ontbreken, vies, bekrast of door een logo bedekt zijn, gebruikt de decoder die redundante codewoorden om de oorspronkelijke data wiskundig opnieuw op te bouwen. Er wordt niets "twee keer opgeslagen" in naïeve zin; de wiskunde laat de lezer het bericht herstellen, zelfs als een deel ervan onleesbaar is.

Dit is een harde specificatie, gedefinieerd door Denso Wave, het bedrijf dat de QR-code uitvond, en gestandaardiseerd in ISO/IEC 18004. Denso Wave beschrijft de functie als het toevoegen van "een Reed-Solomon-code aan de oorspronkelijke data", en dat is de reden dat een code op een gekreukte flyer of een licht uitgesmeerd etiket toch scant. Het is ook de reden dat je überhaupt een logo in het midden kunt zetten.

Het cruciale detail, en degene die de meeste blogposts verkeerd hebben, is waartegen de redundantie wordt gemeten. Het is een percentage van de totale codewoorden, geen vrijbrief om een percentage van het plaatje over te schilderen. Onthoud dat, want het verandert elke praktische beslissing hieronder.

De vier foutcorrectieniveaus: L, M, Q en H

Elke QR-code wordt gegenereerd op een van de vier foutcorrectieniveaus. De officiële herstelcijfers van Denso Wave zijn:

  • Niveau L (Low): ongeveer 7% van de codewoorden herstelbaar.
  • Niveau M (Medium): ongeveer 15%.
  • Niveau Q (Quartile): ongeveer 25%.
  • Niveau H (High): ongeveer 30%.

Behandel die getallen bewust als bij benadering. De exacte herstelbare fractie verschuift licht met de versie van de code (het aantal modules), omdat foutcorrectiecodewoorden in blokken worden toegewezen. De kernpercentages zijn het juiste mentale model, maar "ongeveer" is het eerlijke woord, en het is het woord dat Denso Wave gebruikt.

De meeste generatoren staan standaard op niveau M, wat de verstandige dagelijkse keuze is voor schoon drukwerk: een goede balans tussen veerkracht en dichtheid. Niveau L levert de minst dichte code op maar verdraagt vrijwel geen schade. Niveau Q en H ruilen datacapaciteit in voor robuustheid, en H is degene waar je naar grijpt als er een logo in het midden komt.

De mythe "je kunt 30% van de code bedekken"

Hier is de bewering die je op tientallen leveranciersblogs leest: "Niveau H laat je 30% van de QR-code bedekken, dus je logo mag bijna een derde ervan innemen." Dat is een slordige samentrekking, en het goed krijgen is het verschil tussen een code die scant en een herdruk.

De 30% is herstelcapaciteit gemeten tegen de totale codewoorden, niet tegen het zichtbare oppervlak, en niet dat hele budget is gratis voor jouw logo. Twee dingen knabbelen eraan. Ten eerste wordt een deel van de code ingenomen door functiepatronen (de zoekpatronen, timing- en uitlijnpatronen) die geen herstelbare data dragen en nooit bedekt mogen worden. Ten tweede, en minder voor de hand liggend, kost het herstellen van een beschadigd codewoord meer van het foutcorrectiebudget dan het herstellen van een bekend gewist codewoord, dus een echte logoklodder over de data eet sneller in het kerncijfer dan het ruwe percentage suggereert.

De praktische vertaling: 30% is een plafond op een specifieke hoeveelheid, geen groen licht om een derde van de artwork te verbergen. Behandel je het als het laatste, dan produceer je codes die slagen op de iPhone van de ontwerper bij goed licht en falen op de oudere Android van een klant in een schemerig restaurant. De fundamenten van formaat, contrast en stille zone gelden hier nog steeds bovenop; die behandelen we in detail in hoe groot moet een QR-code zijn.

Hoe groot kan een logo echt zijn?

Een gecentreerd logo werkt dankzij de redundantie: het ligt over gewone datamodules, en foutcorrectie reconstrueert wat het verbergt. Om dat betrouwbaar te maken in plaats van geluk, volg vier regels.

Een QR-code met zijn zoekpatronen, stille zone, een gecentreerd logo en een veilige dekkingszone genummerd 1 tot 4.
De vier gemarkeerde onderdelen, de zoekpatronen, de stille zone, het gecentreerde logo en de veilige dekkingszone, die samen een logo op een QR-code laten overleven.

Wat het diagram laat zien:

  1. De drie zoekpatronen (de grote vierkant-in-vierkant "ogen" in de hoeken) zijn hoe een camera de code lokaliseert en oriënteert. Houd ze volledig intact en plaats er nooit een logo overheen.
  2. De stille zone is de vrije marge rondom de code, vier modules breed. Die moet leeg blijven zodat de scanner kan zien waar de code eindigt.
  3. Een gecentreerd logo ligt over normale datamodules in het midden, precies het gebied dat foutcorrectie kan opnieuw opbouwen.
  4. De veilige dekkingszone is ruwweg het centrale vijfde tot kwart van de code. Houd het logo daarbinnen.

Over formaat is het eerlijke antwoord een marge, geen specificatie. Het theoretische plafond ligt bij niveau H rond 30% van het oppervlak, maar een betrouwbaar praktijkdoel is 15% tot 25% van het oppervlak van de code, centraal gehouden. Kleiner is veiliger, vooral bij kleine afdrukformaten en onbekende scanapparaten. Genereer de code altijd op niveau H wanneer er een logo aanwezig is, plaats een klein wit uitspaarvlak achter het logo zodat het als schone lichte modules leest in plaats van uit te smeren naar de buren, en test op meer dan één telefoon voordat je akkoord geeft. Dat zijn vuistregels uit de praktijk, consistent over leveranciers heen, geen clausules in de standaard, dus behandel de percentages als richtlijn en laat een echte scantest de uiteindelijke beoordelaar zijn.

Kleur en contrast: wat je veilig kunt veranderen

Kleur is waar merkrichtlijnen en scanbaarheid het vaakst botsen. De regels hier zijn praktijkadvies in plaats van één citeerbaar ISO-getal, maar ze zijn opmerkelijk consistent.

Scanners zijn gebouwd rond één aanname: donkere modules op een lichte achtergrond. Houd je datapatroon donkerder dan zijn achtergrond en je werkt met de stroom mee van elk decodeeralgoritme. Een gangbaar werkbaar minimum is ongeveer een 4:1-contrastverhouding tussen modules en achtergrond, met 7:1 of meer aanbevolen voor buiten of wisselend licht (puur zwart op wit is ongeveer 21:1, en daarom faalt dat nooit). Dat zijn WCAG-achtige verhoudingen die als praktische benadering worden gebruikt; de onderliggende standaard beoordeelt drukkwaliteit eigenlijk in termen van reflectie gemeten door een verifier, dus gebruik de verhoudingen als gezond-verstandcheck, niet als wet.

Een paar specifieke valkuilen om te vermijden:

  • Geïnverteerde codes (lichte modules op een donkere achtergrond) zijn technisch geldig maar echt riskant. Veel scanners, vooral oudere Android-apps en speciale lezers, hebben er moeite mee. Vermijd ze tenzij je breed hebt getest.
  • Verlopen op de modules verlagen het contrast onvoorspelbaar over de code. Gebruik een effen, uniforme donkere kleur voor het datapatroon.
  • Warme voorgronden (rood, oranje) kunnen voor sommige camerasensoren als "licht" lezen, wat het contrast verzwakt waar de decoder op steunt. Koele, donkere kleuren zijn de veilige, merkvriendelijke keuze.

Als merkkleur en betrouwbaar scannen echt botsen, is de oplossing meestal om de bestemmingservaring te veranderen in plaats van de code: houd de code donker-op-licht en stop het merk in de landingspagina die hij opent.

Aangepaste vormen en "artistieke" QR-codes

Ronde stippen, aangepaste modulevormen en gestileerde ogen zijn meestal prima, en hier is waarom. Decoders lezen donker-versus-licht-contrast per rastercel, niet de exacte geometrie, dus zolang elke module zijn positie duidelijk vult en zijn contrast behoudt, doet de vorm van de vulling er niet veel toe. Ronde stippen kunnen marginaal worden bij heel kleine afdrukformaten, omdat een stip minder donker oppervlak heeft dan een vol vierkant, dus reserveer de meest decoratieve stijlen voor codes die groot worden afgedrukt.

De zoekpatronen mogen licht gestileerd worden (afgeronde hoeken, een aangepaste oogkleur) maar moeten vierkant genoeg blijven om herkend te worden. Verwijder hun vierkant-in-vierkant-structuur niet, en leg geen grafische elementen eroverheen. De snelste manier om een verder prachtige code te slopen is creatief worden met de drie hoeken.

De afweging die niemand noemt: hogere correctie betekent een dichtere code

Het opvoeren van foutcorrectie heeft een verborgen prijs. Denso Wave is expliciet: het niveau verhogen "verbetert het foutcorrectievermogen maar verhoogt ook de hoeveelheid data en de QR-codegrootte." Meer foutcorrectie betekent meer codewoorden, wat de code naar een hogere versie met meer modules per zijde kan duwen. Het resultaat is een dichtere code die ofwel meer fysiek formaat ofwel minder gecodeerde tekens nodig heeft om scanbaar te blijven.

Dus "gebruik altijd niveau H" is een mythe die averechts werkt. Bij een klein afdrukformaat wordt een H-code volgepropt met een lange URL een dicht kreupelhout van piepkleine modules die moeilijker te scannen is, niet makkelijker. De regel is situationeel: gebruik H wanneer je een logo toevoegt en de code ruimte kunt geven, en M voor schoon dagelijks drukwerk waar niets de modules bedekt. Het doel is de minst dichte code die nog steeds aan je robuustheidsbehoeften voldoet.

De shortcut: codeer minder, niet meer

Dit is het deel waar bijna niemand de cirkel sluit, en het is de nuttigste truc in het hele onderwerp. QR-datacapaciteit is vast voor een gegeven versie en niveau, dus minder tekens betekent minder codewoorden, wat een lagere versie betekent, wat minder en grotere modules betekent, wat een minder dichte, vergevingsgezindere code betekent.

Vergelijk twee bestemmingen. Een ruwe campagne-URL met trackingparameters zoals https://client.example.com/spring-sale?utm_source=flyer&utm_medium=qr&utm_campaign=2026-spring is lang, dus dwingt hij een dichtere code af. Een korte redirect zoals scankit.app/r/sk7d2 codeert een fractie van de data, dus dezelfde inhoud past in een veel minder dicht symbool. Dat geeft je twee winsten tegelijk: visuele ruimte voor een gecentreerd logo, en de marge om niveau H te draaien zonder een grote, priegelige code af te dwingen.

Dit is de praktische reden dat dynamische QR-codes niet alleen over bewerkbaarheid gaan. Een dynamische code codeert een korte, stabiele redirect, wat fysiek is wat een zwaar gebrande code laat blijven scannen. Als bonus kun je de bestemming na het drukken wijzigen en krijg je scananalyse op elke code, allemaal zonder de gedrukte artwork aan te raken. Branding, robuustheid, flexibiliteit en meting blijken dezelfde beslissing te zijn.

Een branding-checklist van twee minuten vóór het drukken

Voordat een gebrande code naar de drukker gaat, loop dit door:

  1. Gegenereerd op niveau H als hij een logo draagt.
  2. Logo centraal gehouden en binnen ruwweg 15% tot 25% van het oppervlak, met een wit uitspaarvlak erachter.
  3. Zoekpatronen onaangeroerd in alle drie de hoeken, structuur intact.
  4. Stille zone vrij (vier modules) aan alle kanten.
  5. Donkere modules op een lichte achtergrond, effen kleur, contrast minstens 4:1 en het liefst hoger.
  6. Codeer een korte redirect, geen lange ruwe URL, om de code laag in dichtheid te houden.
  7. Scangetest op minstens twee verschillende telefoons (één iOS, één oudere Android) bij gemiddeld, niet perfect, licht.

Slagen alle zeven, dan overleeft de code de echte wereld, niet alleen de designreview.

Veelgestelde vragen

Wat betekenen L, M, Q en H op een QR-code?

Het zijn de vier foutcorrectieniveaus, in oplopende volgorde van veerkracht. Niveau L herstelt ongeveer 7% van de codewoorden, M ongeveer 15%, Q ongeveer 25%, en H ongeveer 30%. Hogere niveaus overleven meer schade of bedekking maar maken de code dichter. De meeste generatoren staan standaard op M; gebruik H wanneer je een logo toevoegt.

Kun je een logo midden in een QR-code zetten?

Ja. Foutcorrectie reconstrueert de datamodules die een gecentreerd logo verbergt, en precies daarom werkt het. Genereer de code op niveau H, houd het logo centraal, zet er een wit vlak achter, en laat het nooit de drie zoekpatronen in de hoeken raken.

Hoeveel van een QR-code mag bedekt zijn en toch scannen?

Tot ongeveer 30% van de codewoorden kan op niveau H hersteld worden, maar dat is niet hetzelfde als 30% van het plaatje bedekken. In de praktijk houd je een logo op ruwweg 15% tot 25% van het oppervlak van de code, gecentreerd, en houd je alle functiepatronen vrij. Behandel het percentage als een plafond op een specifieke hoeveelheid, geen dekkingstoeslag.

Niveau H. Het biedt de hoogste herstelcapaciteit (ongeveer 30%), wat een gecentreerd logo de redundantie geeft die het nodig heeft. Combineer H met een korte gecodeerde URL zodat de extra foutcorrectiedata de code niet naar een onscanbaar dichte versie duwt.

Kan ik de kleur van mijn QR-code veranderen?

Ja, binnen grenzen. Houd donkere modules op een lichte achtergrond, gebruik een effen kleur in plaats van een verloop, en mik op een contrastverhouding van minstens 4:1 (hoger voor buitengebruik). Vermijd geïnverteerde (licht-op-donker) codes en warme voorgrondkleuren zoals rood, die sommige sensoren niet als donker lezen.

Kan een QR-code licht op een donkere achtergrond zijn?

Technisch ja, maar het is riskant. Veel scanners, met name oudere Android- en speciale lezer-apps, zijn gebouwd om donker-op-licht te verwachten en hebben moeite met geïnverteerde codes. Als je merk het eist, test dan eerst op een breed scala aan apparaten, of houd de code conventioneel en brand de landingspagina in plaats daarvan.

Maakt hogere foutcorrectie de QR-code groter?

In feite ja. Het niveau verhogen voegt foutcorrectiecodewoorden toe, wat de code naar een hogere versie met meer modules per zijde kan duwen. Bij een vast afdrukformaat betekent dat kleinere, dichtere modules die moeilijker te scannen zijn. Daarom is "gebruik altijd H" slecht advies: reserveer het voor codes met logo's en geef ze genoeg fysiek formaat.

Waarom scant mijn gebrande QR-code niet?

De gebruikelijke boosdoeners, op volgorde: een logo over een zoekpatroon of te groot, laag contrast of een verloop op de modules, een geïnverteerd kleurschema, een ontbrekende stille zone, of een lange URL die een dichte code afdwong die te klein is gedrukt. Werk die lijst af en de meeste mislukkingen lossen op. De snelste structurele oplossing is de gecodeerde URL inkorten met een dynamische redirect.

De korte versie

Foutcorrectie is redundantie: extra Reed-Solomon-codewoorden die een lezer data laten opnieuw opbouwen die verborgen is door een logo, een kras of een veeg. Er zijn vier niveaus, L, M, Q en H, die ruwweg 7%, 15%, 25% en 30% van de codewoorden herstellen. Die 30% is een budget tegen codewoorden, geen toestemming om een derde van de artwork te bedekken, dus houd een gecentreerd logo op 15% tot 25% van het oppervlak, raak de zoekpatronen nooit aan, en houd de stille zone vrij. Blijf donker-op-licht met effen, contrastrijke kleur, en onthoud dat meer foutcorrectie een dichtere code betekent, dus zet het niet uit reflex op het maximum.

De allerkrachtigste zet is om minder te coderen. Een korte dynamische redirect levert een code met lage dichtheid op die ruimte heeft voor een stevig logo en tegelijk de marge voor niveau H, en hij brengt bewerkbare bestemmingen en analyse gratis mee. Genereer je volgende gebrande code vanuit een korte redirect, loop de zevenpuntschecklist door, scan hem op twee telefoons, en stuur hem naar de drukker in de wetenschap dat hij standhoudt.

Delen

Verder lezen