Correction d'erreurs, zones silencieuses, contraste et taille d'impression : les quatre éléments qui déterminent si un code QR fonctionne sur papier ou échoue discrètement.
Un scanner ne "read" un code QR de la même manière qu'une personne lit un texte. Il transforme l'image de la caméra en pixels noir et blanc, trouve les trois grands carrés dans les coins, élabore la grille, puis lit chaque cellule. Tout ce qui aide ou nuit à un code QR revient à ce processus : les coins doivent être trouvables, la grille doit être régulière et chaque cellule doit être sans ambiguïté claire ou sombre.
C'est pourquoi un code peut paraître parfait sur un écran et échouer complètement une fois imprimé sur un menu, et pourquoi « le rendre plus petit pour l'adapter » est le moyen le plus courant de le casser.
Les codes QR contiennent des données redondantes afin qu'ils soient toujours décodés lorsqu'une partie de l'image est endommagée. Il existe quatre niveaux : L récupère environ 7% du symbole, M environ 15%, Q environ 25% et H environ 30%.
Le compromis est la taille. Une redondance plus élevée signifie plus de modules pour le même contenu, et plus de modules signifie que chacun est physiquement plus petit pour une taille d'impression donnée, ce qui peut rendre la numérisation plus difficile que facile. Augmenter le niveau n’est pas automatiquement plus sûr.
La marge vierge autour d’un code QR n’est pas une décoration. La spécification nécessite au moins quatre modules d’espace libre de chaque côté, et les scanners s’en servent véritablement pour trouver les bords du symbole.
Il s’agit de l’exigence la plus fréquemment ignorée dans la conception QR. Un code collé contre une bordure, une photographie ou un bloc de texte perd sa zone de silence et peut cesser de fonctionner complètement – et l'échec semble aléatoire, car il dépend de ce que l'appareil photo capte.
Cet outil utilise par défaut quatre modules et vous avertit si vous le réduisez. Si une mise en page n'a pas de place pour la marge, réduisez la taille du code plutôt que de réduire la marge.
Les scanners binarisent l'image, ce qui compte donc c'est la différence de luminosité entre le code et son arrière-plan, et non pas si les couleurs vous paraissent agréablement différentes. Deux couleurs peuvent être évidemment distinctes à l’œil nu et presque identiques une fois converties en niveaux de gris.
Le noir sur blanc donne un rapport de contraste de 21:1. Visez au moins 7 :1 ; ci-dessous à propos de 4 : 1 les codes commencent à échouer sur papier et sous un faible éclairage, et cet outil vous avertira. Le chiffre de contraste en direct à côté de l'aperçu est mis à jour à mesure que vous changez de couleur.
Gardez le code plus sombre que son arrière-plan. De nombreux scanners recherchent uniquement l'obscurité sur la lumière, et un code inversé (des modules de lumière sur un champ sombre) est un jeu de pile ou face entre les appareils. Si vous avez besoin d'un code sur un motif sombre, placez-le dans un panneau clair.
Évitez les dégradés dans le code et soyez prudent avec un arrière-plan transparent : tout ce qui se trouve derrière doit satisfaire à la même exigence de contraste.
Une règle empirique largement utilisée est que la largeur du code doit être d'environ un dixième de la distance à partir de laquelle il sera scanné. Un code lu à bout de bras – disons 30 cm – doit mesurer environ 3 cm de diamètre. Une affiche scannée à trois mètres nécessite environ 30 cm.
L'autre moitié du problème est la taille du module. En dessous d'environ 0.4 mm par module, les caméras téléphoniques ordinaires commencent à avoir des difficultés et les imprimantes thermiques bon marché étalent les modules adjacents ensemble. Un contenu plus court signifie moins de modules, ce qui signifie que chaque module est plus grand pour la même taille globale – c'est pourquoi garder la charge utile courte est plus utile que tout autre changement.
Exportez SVG pour tout ce qui sera imprimé. Il est vectoriel, il s'adapte donc à n'importe quelle taille avec des bords parfaitement nets, et c'est ce que souhaitera un concepteur ou un imprimeur.
Exportez PNG pour les écrans, les documents et partout où un bitmap est plus facile. Choisissez une taille de pixel généreuse : cet outil arrondit la taille du module à un nombre entier de pixels afin que chaque module soit identique, ce qui évite les modules inégaux qui apparaissent lorsqu'un code est mis à l'échelle par fractions.
N'agrandissez jamais un code QR PNG après l'exportation. Réexportez-le plutôt en plus grand : l'interpolation rend flous les bords du module, ce qui est précisément ce dont le scanner a besoin pour être net.
Imprimez-en un en taille réelle, sur du matériel réel, et numérisez-le avec plusieurs téléphones – idéalement un ancien Android ainsi qu'un iPhone récent, dans la lumière dans laquelle le code vivra réellement. Un code qui fonctionne sur votre bureau sous une lampe peut échouer sur une table près d'une fenêtre.
Si vous placez un logo au centre, gardez-le petit, gardez-le éloigné des trois carrés de coin et testez le résultat plutôt que de supposer que la correction d'erreur le couvrira.