Cinquante paires de couleurs pour codes QR, et lesquelles survivent à l'impression

par l'équipe KoloQRRecherche

Des cartes blanches portant des codes QR en huit couleurs différentes - bleu marine, violet, sang de bœuf, lie-de-vin, gris, orange, vert et jaune - sur un fond vert vif, avec une pastille noire en travers du milieu portant la mention « 50 QR Code Colour Pairs ».

Sur les cinquante paires code et fond ci-dessous, dix passent les 7:1 et s'impriment sans risque, onze se situent entre 4:1 et 7:1 et appartiennent aux écrans, et treize tombent sous 4:1 et ne devraient porter aucun code QR. Le motif des échecs est constant : les couleurs de marque en demi-teinte. Tous les jaunes, tous les orangés au-dessus de l'Ambre 700 et tous les verts plus clairs que le Vert forêt sont dans le groupe du bas.

Points clés

  • Dix des cinquante paires passent les 7:1, l'objectif de travail pour l'impression. Les dix sont une couleur très sombre sur du blanc ou sur une teinte presque blanche.
  • Treize tombent sous 4:1. Chacune d'elles est une couleur moyenne ou claire employée comme code plutôt que comme fond : jaunes, orangés, verts moyens, cyans moyens.
  • L'échec est systématique, pas aléatoire. Une couleur assez sombre pour imprimer un code QR lisible est en général plus sombre que la couleur qu'une marque considère comme la sienne.
  • Le rapport de contraste est de l'arithmétique sur deux valeurs hexadécimales : chaque chiffre de ce tableau est donc reproductible plutôt que rapporté. Aucun code n'a été imprimé ni scanné pour le produire.
  • Le rapport vous renseigne sur la paire, pas sur l'impression. L'engraissement, la couleur du support, le brillant et l'exposition de l'appareil photo se glissent tous entre un rapport qui passe et un code qui se scanne sur papier.
  • Inverser - code clair sur fond sombre - peut produire un rapport très élevé et échouer quand même, parce que certains décodeurs supposent du sombre sur clair et n'essaient jamais l'autre polarité.

Ce qu'est le nombre de ce tableau, et ce qu'il n'est pas

Un rapport de contraste est la luminance relative de la plus claire de deux couleurs divisée par celle de la plus sombre, décalée pour que l'échelle aille de 1:1 pour deux couleurs identiques à 21:1 pour du noir sur blanc. C'est le même chiffre que WCAG utilise pour la lisibilité du texte, et il se calcule plutôt qu'il ne s'observe : linéariser chaque canal sRGB, les pondérer à 0,2126 pour le rouge, 0,7152 pour le vert et 0,0722 pour le bleu, puis diviser.

Cette définition mérite d'être énoncée précisément, parce que c'est la raison pour laquelle chaque ligne ci-dessous est vérifiable. Personne n'a à faire confiance à ce tableau. Deux valeurs hexadécimales et la formule donnent le même nombre sur n'importe quelle machine, ce qui est un autre genre d'affirmation que « nous l'avons testé et ça a marché ».

C'en est aussi la limite. Aucun code QR n'a été imprimé ni scanné pour produire ce tableau. La colonne de verdict applique deux seuils de design que ce site publie déjà - environ 7:1 pour l'impression et environ 4:1 pour l'écran - à un rapport calculé. C'est un filtre pour décider quelles paires méritent d'être testées, pas un substitut au test.

La raison pour laquelle ces seuils sont si loin au-dessus de ce dont un décodeur a besoin est traitée dans le test de contraste minimal : le décodeur open source qu'on peut lire abandonne autour de 1,2:1, et tout ce qui sépare ce point de 7:1 est de la marge pour ce que l'impression fait subir à un code une fois le fichier correct.

Les dix paires qui passent l'impression

Celles-ci atteignent 7:1 ou mieux et gardent assez de marge pour l'engraissement, la réflectance du papier et une source lumineuse malcommode. Chacune est une couleur très sombre sur du blanc.

PaireHexRapportSûr pour
Noir sur blanc#000000 sur #FFFFFF21,00:1Impression
Presque noir sur blanc#111111 sur #FFFFFF18,88:1Impression
Bleu marine sur blanc#0B1F3A sur #FFFFFF16,52:1Impression
Violet foncé sur blanc#581C87 sur #FFFFFF10,88:1Impression
Sang de bœuf sur blanc#7F1D1D sur #FFFFFF10,02:1Impression
Lie-de-vin sur blanc#9D174D sur #FFFFFF7,88:1Impression
Vert foncé sur blanc#065F46 sur #FFFFFF7,68:1Impression
Gris chaud sur blanc#57534E sur #FFFFFF7,63:1Impression
Orange brûlé sur blanc#9A3412 sur #FFFFFF7,31:1Impression
Vert forêt sur blanc#166534 sur #FFFFFF7,13:1Impression
L'orange brûlé à 7,31:1 est l'entrée utile ici : c'est la seule couleur de la liste qu'une marque appellerait orange, et elle est plusieurs crans plus sombre que l'orange que possèdent la plupart des marques.

La lecture pratique de ce groupe, c'est que la palette imprimable est étroite et profonde. Bleu marine, sang de bœuf, lie-de-vin, vert foncé, violet foncé : voilà les couleurs qui marchent, et une marque dont l'identité vit à cette extrémité de sa propre palette peut imprimer un code QR coloré sans y penser.

Les onze paires qui appartiennent à un écran

Celles-ci se situent entre 4:1 et 7:1. Sur un écran, où le contraste est parfait, la lumière uniforme et les bords nets, elles vont bien. À l'impression, elles ont dépensé leur marge avant que l'encre ne sèche.

PaireHexRapportSûr pour
Violet 700 sur blanc#7E22CE sur #FFFFFF6,98:1Écran uniquement
Bleu roi sur blanc#1D4ED8 sur #FFFFFF6,70:1Écran uniquement
Rouge 700 sur blanc#B91C1C sur #FFFFFF6,47:1Écran uniquement
Sarcelle 700 sur blanc#0F766E sur #FFFFFF5,47:1Écran uniquement
Cyan 700 sur blanc#0E7490 sur #FFFFFF5,36:1Écran uniquement
Bleu 600 sur blanc#2563EB sur #FFFFFF5,17:1Écran uniquement
Vert 700 sur blanc#15803D sur #FFFFFF5,02:1Écran uniquement
Ambre 700 sur blanc#B45309 sur #FFFFFF5,02:1Écran uniquement
Rouge 600 sur blanc#DC2626 sur #FFFFFF4,83:1Écran uniquement
Pierre 500 sur blanc#78716C sur #FFFFFF4,80:1Écran uniquement
Rose 600 sur blanc#DB2777 sur #FFFFFF4,60:1Écran uniquement
Le Violet 700 rate le seuil de l'impression de 0,02. Traiter 7:1 comme une falaise serait absurde, mais tenir pour acquise une paire aussi proche de la ligne sans épreuve le serait tout autant.

C'est la bande où se situent réellement la plupart des couleurs de marque, et c'est celle qui produit l'échec caractéristique du code qui se scannait au studio et ne se scannait plus en rayon. Le test du studio était sur un moniteur.

Les treize paires qui ne devraient pas porter de code

Sous 4:1, un code QR compte sur la tolérance du décodeur plutôt que sur sa lisibilité. Ces paires se scannent parfois, sur un bon téléphone, sous une bonne lumière, à une taille généreuse - ce qui est pire qu'un échec franc, parce que cela passe le seul test que quiconque fait.

PaireHexRapportSûr pour
Violet 500 sur blanc#A855F7 sur #FFFFFF3,96:1Aucun
Rouge 500 sur blanc#EF4444 sur #FFFFFF3,76:1Aucun
Bleu 500 sur blanc#3B82F6 sur #FFFFFF3,68:1Aucun
Orange 600 sur blanc#EA580C sur #FFFFFF3,56:1Aucun
Rose 500 sur blanc#EC4899 sur #FFFFFF3,53:1Aucun
Ambre 600 sur blanc#D97706 sur #FFFFFF3,19:1Aucun
Or sur blanc#CA8A04 sur #FFFFFF2,94:1Aucun
Orange 500 sur blanc#F97316 sur #FFFFFF2,80:1Aucun
Cyan 500 sur blanc#06B6D4 sur #FFFFFF2,43:1Aucun
Vert 500 sur blanc#22C55E sur #FFFFFF2,28:1Aucun
Jaune 500 sur blanc#EAB308 sur #FFFFFF1,92:1Aucun
Vert lime sur blanc#78D650 sur #FFFFFF1,82:1Aucun
Jaune 400 sur blanc#FACC15 sur #FFFFFF1,53:1Aucun
Le jaune sur blanc atteint 1,53:1, ce qui est proche du point où un décodeur cesse de voir un motif du tout plutôt que d'en voir un faible.

Le motif de ce groupe est l'enseignement à retenir. Ce n'est pas que certaines teintes échouent et d'autres passent : c'est que la clarté est la variable et la teinte ne l'est pas. Le vert apparaît dans les trois bandes : le vert foncé passe à 7,68:1, le Vert 700 est réservé à l'écran à 5,02:1, le Vert 500 échoue à 2,28:1. La couleur est trois fois la même idée ; seule la luminance a changé.

Codes sombres sur support teinté

Imprimer sur autre chose que du blanc abaisse le rapport, parce que les modules clairs du code sont le papier. Le kraft, le crème, le recyclé et les papiers de couleur partent tous plus bas que le fichier ne le suggère, et le fichier ne peut pas vous dire de combien.

PaireHexRapportSûr pour
Noir sur crème#000000 sur #FDF6E319,47:1Impression
Noir sur beige#000000 sur #F5F5DC18,98:1Impression
Anthracite sur blanc cassé#1A1A1A sur #F7F7F516,23:1Impression
Bleu Oxford sur presque blanc#14213D sur #FCFCFC15,57:1Impression
Bleu marine sur bleu pâle#0B1F3A sur #EFF6FF15,18:1Impression
Bleu Oxford sur ambre pâle#14213D sur #FEF3C714,35:1Impression
Anthracite sur gris moyen#1A1A1A sur #D4D4D811,78:1Impression
Sang de bœuf sur rouge pâle#7F1D1D sur #FEF2F29,16:1Impression
Vert forêt sur vert pâle#166534 sur #F0FDF46,81:1Écran uniquement
Gris foncé sur gris 400#333333 sur #9CA3AF4,98:1Écran uniquement
Une teinte pâle coûte moins qu'il n'y paraît. Le noir sur crème perd 1,53 par rapport au noir sur blanc, ce qui n'est rien. Ce qui coûte, c'est l'éclaircissement de la couleur du code, pas l'assombrissement du papier.

Les deux dernières lignes sont les instructives. Le vert forêt sur blanc passait à 7,13:1 ; le même vert sur une teinte vert pâle tombe à 6,81:1 et ne passe plus le seuil de l'impression. Une teinte à peine visible a fait basculer une paire qui passait dans la bande marginale.

Les codes clairs sur fond sombre sont une autre question

Inverser un code QR - modules clairs sur fond sombre - produit facilement des rapports élevés, et le rapport n'est pas le problème. Le problème, c'est que la formule du rapport de contraste est symétrique et que les décodeurs ne le sont pas.

PaireHexRapportSûr pour
Blanc sur noir#FFFFFF sur #00000021,00:1À tester
Blanc cassé sur presque noir#F5F5F5 sur #11111117,32:1À tester
Blanc sur bleu marine#FFFFFF sur #0B1F3A16,52:1À tester
Jaune 400 sur presque noir#FACC15 sur #11111112,33:1À tester
Vert lime sur presque noir#78D650 sur #11111010,38:1À tester
Bleu 400 sur bleu marine#60A5FA sur #0B1F3A6,50:1À tester
Le jaune atteint 12,33:1 inversé et 1,53:1 à l'endroit. Même couleur, même formule, résultats opposés - une bonne illustration de la raison pour laquelle le rapport seul ne décide de rien.

Un code QR est spécifié comme des modules sombres sur fond clair, et si beaucoup de décodeurs essaient la polarité inversée, tous ne le font pas et aucun ne le promet. C'est une question de parc de scanneurs plutôt qu'une question de couleur, et aucun rapport n'y répond. Si un design réclame un code inversé, la colonne de verdict dit « à tester », parce que tester est le seul moyen de savoir.

Ce que le rapport ne vous dit pas

Quatre choses se glissent entre un rapport qui passe et un code qui se scanne sur papier, et aucune n'est visible dans le fichier.

  • L'engraissement. Toute presse fait légèrement grossir les zones sombres. Sur un code QR, cela veut dire que les modules clairs se resserrent, ce qui abaisse le contraste effectif exactement à l'échelle où un décodeur échantillonne.
  • Le support. Le rapport suppose que le fond est la couleur du fichier. Sur du non couché, du recyclé ou du papier coloré, il ne l'est pas, et le papier fait la moitié du travail.
  • La finition. Un pelliculage brillant peut poser un reflet spéculaire sur une partie du symbole, quelle que soit la qualité de la paire dessous. Un code à 21:1 sous un reflet est un code à 1:1 à cet endroit.
  • L'exposition de l'appareil photo. Un téléphone mesure toute la scène. Un petit code sur une grande surface claire est exposé pour la surface, et il arrive au décodeur plus plat qu'il n'est sorti de chez l'imprimeur.

C'est pourquoi la colonne de verdict est formulée comme un seuil et non comme une promesse. Passer les 7:1 signifie que la paire n'est pas la raison de l'échec du code ; cela ne signifie pas que le code n'échouera pas.

Comment vérifier une paire qui n'est pas dans ce tableau

La plupart des palettes de marque contiennent une couleur qui n'est pas parmi les cinquante. La vérification prend quelques secondes et c'est celle qui a servi à construire le tableau.

  1. Obtenez le rapport des deux valeurs hexadécimales. Entrez la couleur du code et celle du fond dans le vérificateur de contraste QR. Il renvoie le même chiffre que celui de ce tableau, pour n'importe quelle paire.
  2. Comparez-le au travail, pas à un nombre unique. Environ 7:1 pour tout ce qui est imprimé, environ 4:1 pour un code qui ne sera jamais montré que sur un écran. Sous 4:1, changez la couleur plutôt que la taille.
  3. Si ça échoue, assombrissez plutôt que de changer de teinte. Les échecs de ce tableau sont un problème de clarté. Un orange de marque qui échoue à 2,80:1 a en général un frère plus sombre dans la même palette qui passe les 7:1 et se lit toujours comme la marque.
  4. Mesurez le fichier exporté, pas le nuancier. Le validateur de code QR lit l'export fini et signale le contraste qu'il contient réellement, ainsi que la zone de silence et la taille de module. Un dégradé ou un fond doux change la réponse donnée par les nuanciers.
  5. Faites l'échelle avant un gros tirage. L'échelle de contraste du test de contraste minimal produit un seuil pour vos propres téléphones et votre propre support, et c'est le seul nombre qui décrit votre travail plutôt que le cas général.

Pour le côté design de la même décision - quelles parties d'un code peuvent prendre de la couleur et où va un accent - les codes QR en couleur traitent le placement plutôt que l'arithmétique.

Crée ton code QR

Gratuit, sans compte et sans filigrane. Choisis une forme, ajoute un logo, vérifie le contraste et exporte en SVG, PDF, EPS ou PNG : un code statique sans abonnement derrière.

Générer un code QR

Questions? Answered

Visez environ 7:1 pour l'impression et environ 4:1 pour l'écran. Les décodeurs acceptent bien moins - celui, open source, qu'on peut lire abandonne vers 1,2:1 -, mais tout ce qui sépare ce point de 7:1 est de la marge pour l'engraissement, le papier, les reflets et l'exposition de l'appareil photo. Une paire sous 4:1 compte sur la tolérance plutôt que sur la lisibilité.

Pas en tant que code lui-même. Le Jaune 400 sur blanc mesure 1,53:1 et le Jaune 500 mesure 1,92:1, tous deux très en dessous de tout seuil utilisable. Le jaune marche comme fond avec un code très sombre dessus, et il marche inversé sur du presque noir à 12,33:1 - mais un code jaune sur fond clair, non.

La plupart des couleurs de marque se situent entre 4:1 et 7:1, ce qui suffit sur un écran et pas sur papier. Un écran donne un contraste parfait, une lumière uniforme et des bords nets ; l'impression dépense les trois en engraissement, réflectance et reflets. Le test du moniteur était le plus facile.

Il mesure 21:1, autant que du noir sur blanc, et il demande quand même un test. La norme QR spécifie des modules sombres sur fond clair. Beaucoup de décodeurs essaient la polarité inversée et certains non : un code inversé est donc une question de parc de scanneurs à laquelle aucun chiffre de contraste ne répond.

Pas en soi. Le noir sur crème mesure 19,47:1 et le noir sur beige 18,98:1, tous deux très au-dessus du seuil d'impression. Ce qui casse les codes, c'est l'éclaircissement de la couleur du motif, pas l'assombrissement du papier. La combinaison à éviter est un code sombre sur un support de demi-teinte.

Non, et le tableau ne le prétend pas. Chaque rapport est calculé à partir des deux valeurs hexadécimales avec la formule standard de luminance relative, ce qui rend chaque chiffre reproductible plutôt que rapporté. La colonne de verdict applique à ce nombre des seuils de design publiés. Savoir si une paire donnée survit à une presse donnée relève d'une épreuve, pas d'un calcul.

Linéarisez chaque canal sRGB des deux couleurs, pondérez-les à 0,2126 pour le rouge, 0,7152 pour le vert et 0,0722 pour le bleu afin d'obtenir la luminance relative, puis divisez la plus claire par la plus sombre en ajoutant 0,05 à chacune. N'importe quel calculateur de contraste WCAG fait la même arithmétique, y compris celui de ce site.

Seulement jusqu'à un certain point, et c'est le mauvais levier. La taille aide un décodeur à résoudre les modules ; le contraste est ce qui lui permet de les distinguer. Un code à 2:1 imprimé à 10 cm est un grand motif plat. Changez d'abord la couleur, puis dimensionnez pour la distance de lecture.

Pourquoi KoloQR ?

  • Crée des codes QR pour des sites web, des menus, le Wi-Fi, des PDF et des cartes de visite
  • Personnalise les couleurs, les logos et des formes uniques
  • Télécharge des fichiers PNG et SVG de haute qualité
  • Conçu pour l'impression comme pour le numérique
Générer un code QR
Un code QR noir tout simple à côté du même code redessiné en cercle avec des couleurs de marque