Le code de cette page n'a pas démarré.

Ouvrir index.html directement depuis un dossier bloque les modules JavaScript, si bien que rien ne se passera au moment de choisir l'image à lire. Servez plutôt le dossier en http :

powershell -ExecutionPolicy Bypass -File serve.ps1

Ouvrez ensuite http://localhost:8080/.

Lecteur de QR codes et codes-barres — scanner un QR code depuis une image ou la caméra

Visez un code, ou déposez-en une photo. La lecture se fait ici, et nulle part ailleurs.

Langue: Français
Voir le code
Vos images et les codes qu'elles contiennent sont traités dans votre navigateur. Aucun envoi pour traitement.

Lire un code, c'est de l'arithmétique sur des pixels, et les pixels sont déjà là. Trouver le symbole, corriger l'angle de la prise de vue, défaire le masque, réparer les dégâts avec Reed-Solomon et relire les bits : tout cela se passe dans environ deux mille lignes de JavaScript que vous pouvez lire, dans cette page. La caméra, c'est la même promesse, pas une exception : une image arrive sous forme de pixels dans cet onglet, elle est examinée, elle disparaît. Rien n'est enregistré, rien n'est conservé, et cette page n'a aucune fonction réseau qui permettrait d'envoyer quoi que ce soit.

Vérification en direct : vérification…

Hors ligne : vérification…

Ne nous croyez pas sur parole : ouvrez les outils de développement, surveillez l'onglet « Réseau » et scannez un code avec la caméra allumée. Pas une seule requête ne transporte une image ni un caractère de ce qu'elle disait. Vous pouvez aussi couper la connexion et lire le code quand même.

1 Montrez-lui le code

Une photo, une capture d'écran, ou la caméra. Quel que soit votre choix, l'image est lue ici, dans cette page, sur votre machine — rien n'est envoyé, et une image de la caméra est examinée puis jetée, pas enregistrée.

Vous pouvez aussi coller une image directement avec Ctrl+V — une capture d'un code déjà affiché à l'écran est la voie la plus rapide.

2 Ce qu'il dit

Montré, jamais ouvert. Un code imprimé est une adresse que personne ne peut lire, ce qui est exactement ce qui rend un autocollant collé par-dessus rentable pour quelqu'un — alors la chaîne entière est là, à regarder, avec l'hôte que vous atteindriez vraiment sorti sur sa propre ligne.

Voir en Markdown

Comment lire un QR code sans envoyer l'image

  1. Donnez-lui l'image.Déposez une photo ou une capture d'écran sur la boîte, collez-en une directement, ou appuyez sur le bouton de la caméra. Plusieurs à la fois, c'est très bien : chacune est lue séparément et chacune a sa propre réponse. Une capture d'un code déjà affiché à l'écran est la voie la plus rapide et la plus fiable, parce qu'il n'y a là ni objectif, ni angle, ni lumière en jeu.
  2. Faites entrer le symbole entier, marge comprise.Le blanc autour d'un code fait partie du code : c'est comme cela qu'un lecteur sait où le symbole s'arrête. Une photo rognée au bord des carrés est de loin la raison la plus fréquente pour laquelle un code ne se lit pas. Remplir à peu près la moitié du cadre avec le code, c'est à peu près juste ; plus près, et les coins sortent de l'image.
  3. Lisez l'adresse avant de décider quoi que ce soit.Scanner un code sur une affiche, un horodateur ou une lettre, c'est pour savoir où il mène — et c'est justement la seule chose qu'un appareil photo de téléphone ne vous laisse pas vraiment faire. Ici l'hôte est écrit sur sa propre ligne. Si ce n'est pas un nom auquel vous vous attendiez, vous avez déjà ce que vous étiez venu chercher et il n'y a plus rien à ouvrir.
  4. Prenez les avertissements au sérieux, surtout les discrets.Une adresse en http:// tout court, un nom écrit dans un alphabet qui n'est pas celui qu'il semble être, un raccourcisseur de liens, ou quoi que ce soit devant un @ dans l'adresse : chacun est nommé là où il apparaît. Aucun ne prouve quoi que ce soit à lui seul. Tous méritent dix secondes avant d'y aller.
  5. Si cela ne se lit pas, changez la lumière avant tout le reste.Presque tous les échecs sont un problème de seuil : un reflet en travers du milieu, une ombre sur un coin, ou un écran photographié sous un angle qui attrape le rétroéclairage. Déplacez-vous pour que le reflet ne tombe pas sur le code, ou allumez la lumière de la caméra. Si cela ne suffit pas, prenez une seule photo à plat et de face, et déposez celle-là : une image fixe a droit à une recherche bien plus poussée qu'une image en direct.
  6. Si la réponse vous semble bizarre, regardez l'image échantillonnée.Ouvrez « comment celui-ci a été lu » et regardez la petite grille. C'est ce que cette page a cru que le code était, redessiné à partir des modules échantillonnés. Un lecteur qui a mal lu un symbole et l'a réparé jusqu'à en faire quelque chose de plausible le montre là, et nulle part ailleurs.

La version longue

Comment créer un code QR et prouver qu'il se scanne Générer le code, puis le vérifier avec le lecteur du même site - la charge exacte, le vrai lien, à la taille d'impression et depuis une photo - avant le tirage. Tout dans le navigateur, rien d'envoyé.

Questions

L'image est-elle envoyée quelque part ?

Non, et ce qui en est lu non plus. L'image est décodée sur un canvas de cette page et lue là, par du JavaScript servi depuis ce site. Cet outil n'a aucune fonction réseau — il ne va jamais rien chercher et n'envoie jamais rien — et la Content-Security-Policy de la page nomme toutes les adresses qu'elle peut contacter, dont aucune ne nous appartient. La preuve la plus simple : coupez la connexion, cela continue de marcher.

La caméra enregistre-t-elle quelque chose ?

Non. Une image de la caméra arrive sous forme de pixels dans cet onglet, est dessinée sur un canvas, est examinée, et se fait écraser par la suivante un dixième de seconde plus tard. Rien n'est écrit sur le disque et rien n'est conservé. Le flux s'arrête dès que vous appuyez sur arrêter, quand l'onglet passe en arrière-plan et quand vous quittez la page — et le voyant de votre caméra est l'indicateur auquel vous fier, parce qu'aucune page ne peut l'éteindre.

Pourquoi me montre-t-elle le lien au lieu de l'ouvrir ?

Parce que c'est la partie utile. Un QR code est une adresse que vous ne pouvez pas lire, et c'est bien pour cela qu'un autocollant sur le code d'un horodateur fonctionne : quand vous savez où il menait, vous y êtes déjà. Ici la chaîne est affichée en entier, l'hôte est sorti sur sa propre ligne, et l'ouvrir est un bouton séparé sur lequel vous appuyez après l'avoir lue. C'est un clic de plus, et c'est le clic dont ce format a toujours eu besoin.

Que sait-il lire ?

Les QR codes de toutes les versions, de 1 à 40, aux quatre niveaux de correction d'erreurs, en mode numérique, alphanumérique, octet et kanji, avec les jeux de caractères ECI et les symboles d'un ensemble chaîné signalés plutôt qu'abandonnés en silence. Côté barres : EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, Interleaved 2 of 5, Code 128 et Code 39. Il ne lit ni Data Matrix, ni PDF417, ni Aztec, ni MaxiCode.

Il ne lit pas mon code. Qu'est-ce qui ne va pas ?

Neuf fois sur dix, c'est l'une de trois choses. La marge blanche est rognée, et un lecteur s'en sert pour savoir où le symbole s'arrête. Un reflet ou une ombre traverse une partie du code, si bien qu'aucun seuil ne sépare les carrés sombres des clairs. Ou le code est si petit dans le cadre que ses modules ne font qu'un ou deux pixels. Changez la lumière, remplissez à peu près la moitié du cadre, et prenez la photo de face plutôt que de biais.

Peut-il lire un code abîmé ou partiellement recouvert ?

Parfois. Reed-Solomon restaure des mots de code endommagés dans la limite du symbole. Les quelque 30 % de H concernent le total des mots de code, pas des modules quelconques ni la surface ; des motifs de repérage abîmés peuvent empêcher toute détection. Le compteur du résultat indique les corrections effectuées. DENSO explique les niveaux.

Pourquoi dit-il qu'il ne peut pas savoir où mène un lien bit.ly ?

Parce que le savoir voudrait dire demander à bit.ly, et c'est une requête réseau. Tout le reste de ce que cette page affirme repose sur le fait qu'aucun code ici ne contacte quoi que ce soit, et faire discrètement une exception vaudrait moins que la réponse. Alors le raccourcisseur est nommé, et ce qu'il cache est honnêtement laissé inconnu. Si vous voulez le résoudre, collez-le dans quelque chose qui accepte, lui, de demander.

Est-ce risqué de scanner un QR code ?

Le scanner ne l'est pas. Y donner suite, si, et le risque est réel : les codes collés par-dessus le vrai, sur les horodateurs, les tables de restaurant et les avis de passage des livreurs, sont désormais assez courants pour avoir un nom. Ce qui les fait marcher, c'est que personne ne peut lire un code en le regardant. Le lire sans l'ouvrir — ce que fait cette page — supprime tout cet avantage, et les dix secondes passées à regarder l'hôte sont toute la défense.

C'est quoi, la petite grille sous chaque résultat ?

Les modules que cette page a réellement échantillonnés sur votre image, redessinés à un carré par module. Elle est là pour que la lecture se vérifie à l'œil plutôt que se croie : si cette grille ressemble au code que vous avez photographié, la réponse au-dessus vient des bons pixels. Presque aucun lecteur ne vous montre cela, et c'est la différence entre un outil qu'on peut vérifier et un outil qu'il faut croire.

Lit-il plusieurs codes sur une même image ?

Un par image, pour l'instant. Déposez plusieurs images à la fois et chacune est lue séparément, et la caméra lit code après code à mesure que vous la déplacez, gardant chaque nouveau qu'elle n'a pas déjà vu. Une seule photo contenant une page entière de codes, c'est un travail de recadrage — ou de caméra pointée sur l'un après l'autre.

Pourquoi appelle-t-il mon code-barres autrement que ce que j'avais demandé ?

Parce qu'un code-barres ne porte pas son propre nom. UPC-A est un EAN-13 dont le premier chiffre est un zéro, ITF-14 est de l'Interleaved 2 of 5 à quatorze chiffres avec une clé de contrôle valide, et le Code 128 dans son mode numérique ne ressemble à rien d'autre. Ce que cette page annonce, c'est ce que disent les barres plus ce que confirme la clé de contrôle : c'est tout ce que le symbole lui-même sait.

Est-ce que cela fonctionne hors ligne ?

Oui. Chargez la page une fois, coupez la connexion, et elle continue de fonctionner, caméra comprise. C'est aussi la façon la plus simple de prouver que rien n'est envoyé : un lecteur qui expédierait votre image pour la faire décoder s'arrêterait à la seconde où vous débranchez.