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 merklogo in het midden, naast een rij merkkleurstalen, die allemaal succesvol scannen.
Gids

QR-code met logo: zo blijft hij betrouwbaar scanbaar

Zet een logo in je QR-code zonder dat hij faalt op de gedrukte poster. Wat de “30%”-mythe echt betekent, hoeveel je mag bedekken, welke delen verboden terrein zijn en hoe je merkkleuren behoudt. Praktische gids voor bureaus.

ScanKit

ScanKit · Organization

· 18 min. leestijd

Het brandteam van je klant heeft één regel: het logo staat overal op. Vervolgens overhandigen ze je een QR-code voor de nieuwe postercampagne en vragen ze of je het logo in het midden wilt zetten, het in het merkblauw wilt uitvoeren en het vrijdag bij de drukker wilt hebben. De code moet vanaf de andere kant van een ruimte scannen, in een schemerige bar, op een vier jaar oude Androidtelefoon die nog nooit een update heeft gezien.

En nu het geruststellende deel. Je kunt een logo in een QR-code zetten, en een goed gemaakte branded code scant net zo betrouwbaar als een kale. De adder onder het gras is dat vrijwel elke gids online hetzelfde getal herhaalt, "een logo mag tot 30% bedekken", en daarmee de plank misslaat. Dat ene misverstand is precies waarom zoveel branded codes er op het scherm perfect uitzien en daarna op de gedrukte poster falen.

Deze gids legt uit wat een logo daadwerkelijk in een QR-code laat passen, hoeveel je echt kunt bedekken, de onderdelen die je nooit mag aanraken, en hoe je merkkleuren behoudt zonder de scan om zeep te helpen. De cijfers komen uit de QR-standaard zelf, ISO/IEC 18004, en van Denso Wave, het bedrijf dat het formaat heeft uitgevonden. Waar iets een praktische vuistregel is in plaats van een harde specificatie, zeggen we dat erbij.

Waarom een logo een QR-code niet sloopt

Een QR-code is geen foto die pixel voor pixel perfect moet zijn. Het is data met een ingebouwd reparatiekit. Elke code draagt reserve-informatie mee, berekend met een methode die Reed-Solomon-foutcorrectie heet, waarmee een scanner delen van de code die hij niet kan lezen opnieuw kan opbouwen. Een kras, een koffiering, een vouw in de flyer of een logo dat boven op een paar modules ligt: voor de decoder ziet het er allemaal hetzelfde uit, namelijk als ontbrekende data die hij kan reconstrueren, tot een grens.

Die grens ligt vast op het moment dat de code wordt gegenereerd, door te kiezen voor een van de vier foutcorrectieniveaus.

De vier foutcorrectieniveaus

Het zijn er precies vier, en ze staan in de standaard vastgelegd. In oplopende sterkte:

  • Niveau L (Low): kan ongeveer 7% van de data van de code opnieuw opbouwen.
  • Niveau M (Medium): ongeveer 15%.
  • Niveau Q (Quartile): ongeveer 25%.
  • Niveau H (High): ongeveer 30%.

Nu de nuance die vrijwel elk ander artikel overslaat. ISO/IEC 18004 definieert deze percentages als het aandeel van de codewoorden van de code dat hersteld kan worden, niet als het aandeel van de afbeelding dat je mag bedekken. Een codewoord is een blok van acht bits gecodeerde data. Niveau H betekent dat de wiskunde tot grofweg 30% van die datablokken kan herstellen, en dat is iets anders dan de uitspraak "je mag 30% van de afbeelding zwart maken". Die verschuiving van data naar afbeelding is de wortel van de meest voorkomende brandingfout, en daar komen we zo op terug.

De praktische instructie is simpel: genereer voor elke code met een logo altijd op niveau H. Dat geeft je het grootste reparatiebudget, en je gaat het grootste deel van dat budget nodig hebben voor de echte wereld, niet voor het logo.

Hoeveel van de code kan een logo nu echt bedekken?

Er staat nergens in de QR-standaard een maximale logogrootte. Nergens. ISO/IEC 18004 beschrijft foutcorrectiecapaciteit en zegt niets over het inbedden van logo's, want logo's zijn helemaal geen functie van het formaat. Een logo werkt alleen omdat het bedekken van een paar modules er voor de scanner uitziet als schade die hij kan repareren.

Dus waar komt die beroemde "tot 30%" vandaan? Het is de 30%-van-de-data van niveau H, stilletjes herschreven tot "30% van de afbeelding". Dat als doel nemen is op twee manieren fout: het verwart data met afbeeldingsoppervlak, en het besteedt je hele reparatiebudget aan het logo, waardoor er niets overblijft voor de omstandigheden die de code in werkelijkheid gaat tegenkomen.

Stel je het reparatiebudget voor als één gedeelde pot. Een gecentreerd logo trekt eruit. Net als schittering op een glanzende poster, een inktveeg, een lichte misregistratie op de pers, vervaging na maanden in een etalage, en de ruis van een goedkope telefooncamera bij weinig licht. Wat het logo pakt, kan de omgeving niet krijgen. Besteed een deel van de pot aan het logo en houd de rest in reserve.

In de praktijk betekent dat je een logo houdt op grofweg 15% tot 25% van het oppervlak van de code, gecentreerd, en niet groter. Veel ontwerpers mikken op ongeveer 20% en houden het daarbij. Dit is een vuistregel en geen specificatie, maar wel een goed onderbouwde, want het laat echte speling over voor schade. Er is ook een stillere, technischere reden om voorzichtig te blijven. Reed-Solomon werkt blok voor blok, niet over de hele code tegelijk. Een groot logo dat zich in het midden concentreert, kan de correctiecapaciteit uitputten van de specifieke blokken waar het op ligt, zelfs wanneer het totale percentage er nog veilig uitziet. Klein en gecentreerd wint elke keer van groot en ambitieus.

De onderdelen die je nooit mag bedekken

Foutcorrectie beschermt de data. Het beschermt niet de onderdelen van de code die de scanner gebruikt om hem überhaupt te vinden en te lezen. Bedek er daar één van en geen enkel foutcorrectieniveau ter wereld helpt nog, want de decoder kan zich niet eens vastpinnen op de code om met de reparatie te beginnen.

Een QR-code met genummerde gebieden: de finder patterns, het alignment-patroon en de timing patterns gemarkeerd als verboden terrein, de marge van de quiet zone, en het veilige midden waar een logo mag staan.
Dit diagram laat zien waar een logo op een QR-code wel en niet mag staan: de finder patterns, het alignment-patroon, de timing patterns en de quiet zone zijn verboden terrein, alleen het midden is veilig.

Dit is wat elk genummerd gebied in het diagram is, en waarom het verboden terrein is:

  1. Finder patterns, de drie grote vierkanten in de hoeken. Ze laten een scanner de code, zijn grootte en zijn rotatie vanuit elke hoek detecteren. Het is het eerste waar de decoder naar zoekt, dus zelfs één hoek bedekken laat de scan meteen falen.
  2. Alignment patterns, de kleinere vierkanten die op alle codes behalve de allerkleinste aanwezig zijn. Ze corrigeren voor vervorming, zodat de code nog steeds leest wanneer hij op een gebogen fles, een gevouwen flyer of onder een hoek gefotografeerd zit.
  3. Timing patterns, de stippellijnen die tussen de finder patterns door lopen. Ze vertellen de decoder hoeveel modules de code heeft en waar het raster zit.
  4. Quiet zone, de vrije marge helemaal rondom. De standaard vereist een lege rand van minstens vier modules aan elke kant. Zonder die rand lezen scanners de omringende tekst of vormgeving als deel van de code en geven ze het op.
  5. Het midden, het enige veilige onderkomen voor een logo. Het middelste deel draagt gewone data, precies wat foutcorrectie kan opnieuw opbouwen, dus daar gaat het logo en nergens anders.

De regel die hieruit volgt is kort: houd het logo gecentreerd en klein, geef het een schoon kussen van wit zodat het niet uitvloeit in de modules eromheen, en laat nooit enige vormgeving, achtergrondafbeelding of slagschaduw de drie hoeken, de alignment-vierkanten, de timing-lijnen of de marge raken.

Merkkleuren zonder de scan om zeep te helpen

Kleur is waar merkrichtlijnen en scanbaarheid het vaakst botsen. Een QR-code wordt gelezen via reflectie: de scanner heeft donkere modules nodig die licht absorberen, op een lichte achtergrond die het weerkaatst. De standaard is er duidelijk over dat een donkere module een binaire één is en een lichte module een binaire nul, en dat het hele formaat gebouwd is rondom donkere beelden op een lichte achtergrond.

Dat geeft je één harde regel en één zachtere.

De harde regel: de voorgrond moet duidelijk donkerder zijn dan de achtergrond, met een breed gat in helderheid ertussen. Een donkere merkkleur op wit is veilig. Diep marineblauw, flessengroen of een bijna-zwarte merkkleur werken allemaal. Wat faalt is laag contrast, zoals een bleke of neonkleurige voorgrond, twee middentonen die in helderheid dicht bij elkaar liggen, een verloop dat de modules in de achtergrond laat wegvloeien, of een drukke foto achter de code.

De zachtere regel is de vaak geciteerde "contrastverhouding van 4:1". Het is goed om te weten dat dit getal niet in de QR-standaard staat. Het is geleend van richtlijnen voor webtoegankelijkheid (WCAG), die over de leesbaarheid van tekst gaan, en daarna op QR-codes geplakt als ontwerpvuistregel. Het is een redelijk minimum om naar te streven, maar behandel het als een vuistregel, niet als een specificatie. De formele manier waarop een drukker het contrast van een code beoordeelt, is ISO/IEC 15415, dat het symboolcontrast meet, het reflectiegat tussen de lichtste en donkerste module, en de modulatie, hoe consistent dat gat blijft over de hele code. Verlopen, doorschijnen vanaf de achterkant van dun papier en ongelijkmatige inkt trekken die beoordelingen allemaal omlaag. De praktische les is hoe dan ook hetzelfde: hoe groter en schoner het gat tussen donker en licht, hoe meer mishandeling de code overleeft.

Kun je hem omkeren, een licht logo op een donkere code?

De kleuren omdraaien, lichte modules op een donkere achtergrond, is verleidelijk voor donker uitgevoerde ontwerpen. De standaard staat het technisch toe en noemt het reflectance reversal. Echte scanners zijn een ander verhaal. ZXing, de open source-engine achter een groot deel van de Android- en oudere scan-apps, zoekt standaard niet naar omgekeerde codes. De beheerder ervan heeft onomwonden gezegd dat omgekeerde codes geen deel uitmaken van de vereiste specificatie en niet gebruikt zouden moeten worden, en dat er standaard naar zoeken de helft van de verwerkingstijd van elke scan zou verspillen aan een zeldzaam geval. Nieuwere telefooncamera's komen er vaak mee weg, maar een serieuze staart van oudere lezers niet. Voor alles wat naar de drukker gaat, waar je niet kunt kiezen welke telefoon hem scant, houd je donkere modules op een lichte achtergrond aan. Eist de lay-out een donkere uitstraling, zet de code zelf dan op een eigen klein licht paneel binnen het ontwerp.

De verborgen boosdoener: een lange URL

Dit is de fout die bureaus het vaakst voor het blok zet, want hij heeft helemaal niets met het logo te maken. Hoe meer data je codeert, hoe meer modules de code nodig heeft. QR-codes komen in versies van 1, op 21 bij 21 modules, tot 40, op 177 bij 177, en groeien bij elke stap met vier modules per zijde. Een korte link codeert in een lage versie met grote, stevige modules. Een lange, met parameters volgepropte campagne-URL dwingt een hoge versie af: honderden piepkleine modules gepropt in hetzelfde gedrukte vierkant.

Er gaan dan twee dingen tegelijk mis. De modules krimpen, dus ze zijn voor een camera lastiger te onderscheiden, zeker op afstand of bij weinig licht. En een dichtere code heeft minder speling weg te geven, dus hetzelfde gecentreerde logo bedekt nu een groter aandeel van de data, en een groter aandeel van je reparatiebudget. Het logo veranderde niet. De URL maakte het fataal.

Dit is de sterkste praktische reden om branded codes via een korte, dynamische link te leiden. Een dynamische QR-code codeert een piepklein doorverwijsadres, zoiets als scankit.app/r/ab12cd, hoe lang of rommelig de echte bestemming en zijn trackingparameters ook zijn. De gedrukte code blijft een lage versie met grote, robuuste modules die zowel een logo als de echte wereld verdragen. Als bonus kun je, omdat de bestemming in de doorverwijzing leeft in plaats van in de gedrukte code, een typfout repareren of de hele campagne omleiden nadat hij al van de pers is gerold. We wegen die afweging in volle omvang af in dynamische versus statische QR-codes, en de reparatie achteraf in de bestemming van een code wijzigen zonder herdruk. Het betekent ook dat als een gedrukte sticker ooit wordt gemanipuleerd of overplakt, je niet hulpeloos bent, wat deel uitmaakt van het bredere plaatje in QR-codebeveiliging voor bureaus.

Een branded code exporteren en drukken

Een branded code kan elke test op het scherm doorstaan en alsnog op papier falen als hij slordig wordt geëxporteerd of gedrukt.

Exporteer vector, geen raster. Geef de drukker een SVG- of EPS-bestand in plaats van een PNG of JPG. Vector houdt elke modulerand perfect scherp op elk formaat en op de volledige resolutie van de drukker, en dat is precies wat contrast en modulatie beschermt. Een raster-export riskeert zachte, anti-aliased randen en compressiespikkels zodra hij wordt opgeblazen tot posterformaat, en zachte randen zijn voor een scanner lastiger schoon te lezen. Moet je echt een rasterbestand aanleveren, volg dan de regel van Denso Wave dat elke module minstens vier gedrukte punten breed moet zijn, en onthoud dat grotere modules stabieler zijn.

Geef het logo ruimte. Geef het gecentreerde logo een eigen kleine witte uitsparing zodat het in een schoon vlak zit in plaats van samen te smelten met de donkere modules eromheen. Zo blijft het modulerooster ondubbelzinnig tot aan de rand van het logo.

Let op de grootte en de omgeving. Fysieke grootte versus scanafstand is een onderwerp op zich, en de cijfers behandelen we in hoe groot een QR-code moet zijn. De korte versie voor een branded code: grotere modules lezen van verder weg, en de quiet zone moet de lay-out overleven, dus laat een ontwerper niet de marge insnijden om ruimte te maken voor een onderschrift.

Test hem voordat hij naar de drukker gaat

Voorbeelden op het scherm vleien je. Een code die vanaf je monitor scant, op een handbreedte van een webcam in kantoorlicht, vertelt je vrijwel niets over een code op een poster drie meter verderop onder de halogeenspots van een winkel. Voordat een branded code wordt goedgekeurd, onderwerp je hem aan een echte test:

  1. Druk een proef op eindformaat, op het echte materiaal als het kan. Een kantoorlaser of inkjet is prima voor een eerste ronde; het gaat erom dat je van het scherm af komt.
  2. Scan hem met meerdere telefoons, en zorg dat er minstens één oudere Android tussen zit. Nieuwe iPhones vergeven veel dat oudere lezers niet zullen vergeven.
  3. Test in echt licht, inclusief schemerig en ongelijkmatig licht, en vanaf de afstand waarop mensen echt zullen staan.
  4. Voeg de laag van de echte wereld toe: scan hem onder de laminaat, door de raamfolie, of achter de menuhoes waarin hij zal leven, want glans en schittering veranderen alles.
  5. Bevestig de bestemming, niet alleen dat hij scant. Met een dynamische code kun je scannen, controleren of de doorverwijzing op de juiste pagina uitkomt, en alsnog later het doel veranderen als de URL fout is.

Doorstaat hij alle vijf, dan is hij klaar. Faalt hij, verklein dan het logo, verhoog het contrast, kort de URL in, of vergroot de code, in die volgorde, en test opnieuw. Voor codes die maandenlang in het openbaar leven, is een periodieke herscan ook de moeite waard, wat een reden te meer is om een oogje te houden op welke scancijfers ertoe doen, zodat je snel doorhebt of een plaatsing stopt met presteren.

Veelgestelde vragen

Hoeveel van een QR-code mag een logo bedekken?

Er is geen officieel maximum, maar houd een logo op grofweg 15% tot 25% van het oppervlak van de code, gecentreerd. De veel geciteerde "30%" is een verkeerde lezing van foutcorrectie op niveau H, dat ongeveer 30% van de data van de code kan opnieuw opbouwen, niet 30% van de afbeelding. Je hebt het grootste deel van dat reparatiebudget nodig voor schittering, vegen en drukslijtage, dus laat speling over en mik op ongeveer 20%.

Gebruik altijd niveau H (High). Het biedt de grootste foutcorrectiereserve, ongeveer 30% van de data van de code, en dat is wat de code zowel het logo als schade uit de echte wereld laat overleven. Voor een branded code zak je nooit onder niveau Q.

Wat zijn de foutcorrectieniveaus van een QR-code?

Het zijn er vier, gedefinieerd in ISO/IEC 18004. Niveau L kan ongeveer 7% van de data van de code opnieuw opbouwen, M ongeveer 15%, Q ongeveer 25%, en H ongeveer 30%. Het cijfer is het aandeel van de gecodeerde data dat de code kan herstellen via Reed-Solomon-foutcorrectie, niet het aandeel van de afbeelding dat je mag verbergen.

Mag ik mijn logo over de hoeken van de code zetten?

Nee. De drie grote vierkanten in de hoeken zijn finder patterns, die de scanner gebruikt om de code te lokaliseren en te oriënteren. Het is geen data en het wordt niet beschermd door foutcorrectie, dus zelfs één bedekken laat de code stoppen met scannen. Een logo hoort alleen in het midden.

Waarom stopte mijn QR-code met scannen nadat ik het logo had toegevoegd?

Meestal om een van drie redenen: het logo is te groot en heeft het foutcorrectiebudget opgegeten, het overlapt een finder- of timing-patroon, of de onderliggende URL is zo lang dat de code te dicht is om ook maar een module te verliezen. Verklein en centreer het logo, houd het ruim weg van de structurele patronen, en kort de URL in, waarbij een dynamische korte link het meeste helpt.

Kan een QR-code mijn merkkleuren gebruiken?

Ja, zolang de voorgrond duidelijk donkerder blijft dan de achtergrond. Donkere merkkleuren op een lichte achtergrond scannen goed. Vermijd bleke of neonkleurige voorgronden, twee vergelijkbare middentonen, verlopen die de modules laten wegvloeien, en drukke fotoachtergronden. Hoe breder het helderheidsgat tussen de modules en de achtergrond, hoe betrouwbaarder de scan.

Scannen omgekeerde, licht-op-donker, QR-codes?

Soms, maar niet betrouwbaar. De standaard staat reflectance reversal toe, maar veel scanners, waaronder de veelgebruikte ZXing-engine op oudere Androidapparaten, detecteren omgekeerde codes niet standaard. Voor druk houd je donkere modules op een lichte achtergrond aan. Heb je een donker ontwerp nodig, plaats de code dan op een eigen licht paneel.

Maakt een langere URL een QR-code echt lastiger te scannen?

Ja. Meer data betekent een code met een hogere versie met meer, kleinere modules in dezelfde ruimte, wat lastiger te scannen is en minder ruimte laat voor een logo. In plaats daarvan een korte doorverwijslink coderen houdt de code laag in dichtheid en robuust, en het laat je de bestemming later veranderen zonder opnieuw te drukken.

Welk bestandsformaat moet een branded QR-code hebben voor druk?

Vector, een SVG of EPS, voor alles wat gedrukt wordt, zodat de moduleranden vlijmscherp blijven op elk formaat. Gebruik PNG alleen voor schermen, en moet je vanuit een rasterbestand drukken, zorg dan dat elke module minstens vier punten breed is.

Kan ik de bestemming van een branded code wijzigen nadat hij is gedrukt?

Alleen als het een dynamische code is. Een dynamische code codeert een doorverwijzing, dus je kunt hem op elk moment omleiden zonder de druk aan te raken. Een statische code bakt de bestemming erin, dus een foute URL, of een logo dat na de oplage door de test zakt, betekent opnieuw drukken.

De korte versie

Een QR-code branden is niet riskant; het op goed geluk doen wel. Genereer op foutcorrectieniveau H, houd het logo gecentreerd en onder ongeveer 20% van het oppervlak, en laat nooit vormgeving de drie hoeken, de timing-lijnen of de marge van vier modules raken. Houd de voorgrond donkerder dan de achtergrond en sla de omgekeerde look over voor alles wat gedrukt wordt. Codeer bovenal een korte, dynamische link in plaats van een lange campagne-URL, zodat de code laag in dichtheid, tolerant en achteraf repareerbaar blijft. Bewijs het daarna: druk een proef op eindformaat en scan hem op een paar telefoons, inclusief een oude, in het licht waarin hij echt zal leven. Doe dat, en je kunt het brandteam zijn logo in de code geven en er nog steeds op vertrouwen dat hij scant op de poster van vrijdag. Wil je codes die standaard zo robuust blijven, dan is de simpelste zet om ze vanaf het begin dynamisch te maken.

Delen

Verder lezen