Décodeur de Code-barres
Décoder les codes-barres à partir d'images en ligne. Téléchargez, glissez-déposez ou collez des images. Tout se fait dans votre navigateur.
Glissez-déposez une image de code-barres ici
Prend en charge PNG, JPG, GIF, BMP, WebP et autres formats d'image courants
Vous pouvez aussi utiliser Ctrl+V pour coller une image du presse-papiers
Qu'est-ce qu'un Décodeur de Code-barres ?
Un décodeur de code-barres est un outil technique qui lit et décode les images de codes-barres pour récupérer leur contenu original. En téléchargeant une image contenant un code-barres, l'outil reconnaît automatiquement et décode les informations numériques ou textuelles stockées. Il prend en charge les formats de codes-barres 1D courants dont CODE128, EAN-13, EAN-8, CODE39, UPC-A, UPC-E, Codabar et ITF, ainsi que les formats 2D comme QR Code, Data Matrix, PDF417 et Aztec. Cet outil s'exécute entièrement dans votre navigateur — vos images ne quittent jamais votre appareil. Avant publication ou dépôt, ouvrez le fichier obtenu et vérifiez lisibilité, recadrage, résolution, ordre et contenu manquant.
Comment utiliser
Mode d'emploi
- Cliquez sur la zone de téléversement pour sélectionner une image de code-barres, ou glissez-déposez une image dans la zone
- Vous pouvez aussi utiliser Ctrl+V (Cmd+V sur Mac) pour coller une image depuis le presse-papiers
- L'outil détecte et décode automatiquement le contenu du code-barres
- Le résultat décodé s'affiche en dessous, avec le format du code-barres et le type de contenu
- Cliquez sur le bouton « Copier le résultat » pour copier le contenu décodé, ou ouvrez directement l'URL s'il s'agit d'un lien
Conseils de décodage
- Utilisez une image nette à fort contraste avec le code-barres entièrement visible ; flou, reflets, recadrage et fortes distorsions de perspective réduisent la précision.
- Si une URL ou un code produit est décodé, vérifiez la destination ou l'identifiant avant de l'utiliser dans des données de production.
Cas d’utilisation
Principe technique
Un code-barres 1D (UPC, EAN, Code 39, Code 128, ITF, Codabar) est une séquence de barres et d'espaces parallèles dont les largeurs codent des chiffres, des lettres ou l'ensemble complet ASCII. Un code-barres 2D (QR Code, Data Matrix, PDF417, Aztec) est un motif bidimensionnel de modules (cellules) disposés sur une zone de silence, comportant généralement trois motifs de détection de position dans les coins pour l'orientation. Le décodage d'un code-barres est le processus inverse : image → prétraitement → localisation du symbole → mesure des largeurs de barres/espaces (ou échantillonnage de la grille 2D) → consultation de la table d'encodage → application d'une somme de contrôle pour valider le résultat. Le pipeline d'image est déterminant. L'image source passe par une conversion en niveaux de gris (luminance = 0,299 R + 0,587 V + 0,114 B, les coefficients Rec. 601), puis un seuillage global ou adaptatif (la méthode d'Otsu choisit un seuil qui maximise la variance inter-classes, efficace pour la plupart des scans bien éclairés ; le seuillage adaptatif de Sauvola gère mieux l'éclairage inégal). La détection de contours (noyau de Sobel : Gx et Gy 3×3) repère les transitions des barres verticales ; une transformée de Hough sur ces lignes donne l'orientation ; l'analyse en composantes connexes trouve ensuite le rectangle englobant du symbole. La zone de silence (la marge blanche obligatoire autour du symbole, 10× la dimension X pour le QR Code, 9× la largeur de barre pour le Code 128) est vérifiée avant que le symbole ne soit accepté comme candidat valide. Pour les codes 1D, le décodeur mesure la dimension X (la largeur de la barre la plus étroite, la longueur unitaire) et lit les largeurs barre/espace en multiples de X. Un caractère Code 39 est composé de 9 barres + 9 espaces (dont un espace inter-caractères) ; 3 des 9 éléments sont larges (représentant 1) et 6 sont étroits (représentant 0). Un caractère Code 128 est composé de 11 modules : un motif de démarrage, 6 barres/espaces codés et un motif d'arrêt. Chaque caractère fait donc 11 modules ; 11 × nombre_de_caractères + 13 (pour démarrage + arrêt + contrôle + silence) donne la largeur du symbole. Le Code 128 possède trois jeux d'encodage : A (majuscules + contrôle), B (majuscules + minuscules), C (chiffres appairés 00-99) — les codes de commutation de jeu permettent à l'encodeur de choisir le jeu le plus efficace par sous-chaîne. Pour les codes 2D, l'algorithme diffère. Le QR Code utilise la correction d'erreurs Reed-Solomon (niveaux EC L/M/Q/H ajoutant 7%, 15%, 25%, 30% de redondance) et un masque configurable (un parmi 8 ; l'encodeur choisit celui qui minimise le score de pénalité). Après le masquage, le flux de bits est placé sur une grille carrée de 21×21 (Version 1) à 177×177 (Version 40) modules ; les trois motifs de recherche 7×7 dans les coins et les motifs d'alignement 5×5 aux coins intérieurs fournissent l'orientation et l'échelle. Le Data Matrix utilise une disposition similaire avec une bordure pleine en L sur deux côtés et une alternance sombre/clair sur les deux autres. Le PDF417 est un code linéaire empilé (17 modules de large, jusqu'à 90 lignes) utilisé sur les permis de conduire américains et les cartes d'embarquement aériennes. Cette page utilise la bibliothèque ZXing (« Zebra Crossing »), un décodeur multi-format open-source sous licence Apache-2.0 issu du projet Google ZXing. ZXing exécute le pipeline complet (localisation → prétraitement → décodage) et essaie chaque symbologie connue à tour de rôle. Il prend en charge UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, ITF, Codabar, QR Code, Data Matrix, PDF417 et Aztec. Pour les codes 2D, le taux de réussite en bonne lumière est d'environ 99% sur une photo 1080p ; pour les codes 1D, il est plus faible (85-95%) car la perspective, le flou et les reflets déforment les largeurs de barres. Cet outil n'accepte que les entrées par image (téléversement de fichier, glisser-déposer ou collage depuis le presse-papiers) ; il ne propose pas de décodage en direct via la caméra. Les sommes de contrôle sont essentielles. Les UPC/EAN utilisent un chiffre de contrôle modulo 10 (somme des chiffres en position impaire × 3 + somme des chiffres en position paire, modulo 10, soustrait de 10). Le Code 128 utilise un caractère de contrôle modulo 103. Le Code 39 ne requiert pas de chiffre de contrôle mais le contrôle mod-43 est recommandé pour la logistique. Le QR Code utilise la correction d'erreurs Reed-Solomon ; si le décodeur EC détecte plus d'erreurs que le code ne peut en corriger, le décodage échoue. La page affiche les échecs de décodage avec la raison (incohérence de somme de contrôle, zone de silence trop petite, conflit de masque) lorsque la bibliothèque l'indique.
- Les codes-barres 1D (UPC, EAN, Code 39, Code 128, ITF) codent les données dans les largeurs de barres/espaces ; les codes 2D (QR Code, Data Matrix, PDF417, Aztec) codent dans une grille bidimensionnelle de modules. Les deux nécessitent une zone d'environ 10× la largeur unitaire pour être valides.
- Pipeline d'image : niveaux de gris Rec. 601 (0,299R + 0,587V + 0,114B) → seuillage Otsu ou Sauvola → détection de contours Sobel → transformée de Hough pour l'orientation → analyse en composantes connexes pour trouver le cadre englobant du symbole.
- Le Code 128 possède 3 jeux d'encodage : A (majuscules + contrôle), B (majuscules + minuscules), C (chiffres appairés 00-99). Les codes de commutation permettent à l'encodeur de choisir le jeu le plus compact par sous-chaîne, compressant mieux un UPC-A « 123456789012 » que le Code 39.
- Code 39 : 9 barres + 9 espaces par caractère, 3 larges (1) et 6 étroits (0) ; caractère de démarrage/arrêt « * ». Chiffre de contrôle mod-43 optionnel. Largement utilisé dans l'automobile, la défense et le gouvernement américain (MIL-STD-1189).
- Le Code 93 est le prédécesseur du Code 128, avec 9 modules par caractère (6 données + démarrage/arrêt) et 47 caractères uniques ; supplanté par le Code 128 dans la plupart des applications mais encore utilisé dans certaines pharmacies canadiennes et applications USPS.
- QR Code : correction d'erreurs Reed-Solomon aux niveaux L/M/Q/H (7%/15%/25%/30% de redondance), 8 masques, 21×21 à 177×177 modules (Version 1 à 40). Trois motifs de recherche 7×7 dans les coins fournissent l'orientation ; les motifs d'alignement 5×5 sur les versions plus grandes corrigent la distorsion de perspective.
- Data Matrix : bordure pleine en L sur deux côtés, alternance sombre/clair sur les deux autres ; utilisé pour le marquage de petits objets en électronique et en pharmacie (ISO/IEC 16022).
- ZXing (« Zebra Crossing », Apache-2.0, Google) : le décodeur multi-format open-source utilisé ici. Prend en charge UPC-A/E, EAN-8/13, Code 39/93/128, ITF, Codabar, QR Code, Data Matrix, PDF417 et Aztec. Cet outil ne décode qu'à partir de fichiers image (téléversement, glisser-déposer ou collage depuis le presse-papiers) ; il ne propose pas de décodage en direct via la caméra.
- Sommets de contrôle : UPC/EAN utilisent mod-10, Code 128 utilise mod-103, Code 39 utilise mod-43 optionnel, QR Code utilise Reed-Solomon EC. Une incohérence de somme de contrôle indique que l'image est corrompue, pas que les données sont fausses.
Exemples
Reconnaissance de code-barres produit
Téléchargez la photo d'un produit de supermarché, décodez le code-barres EAN-13 pour obtenir 6901234567890, puis recherchez le nom du produit, le fabricant, le prix, etc.Récupération de numéro de suivi
Photographiez le code-barres de l'étiquette d'expédition, décodez pour obtenir un numéro de suivi comme SF1234567890, saisissez-le sur le site du transporteur pour vérifier l'état logistiqueDécodage ISBN de livre
Scannez le code-barres au dos du livre, décodez le numéro ISBN comme 9787111234567, recherchez la base de données des livres pour des informations détailléesFAQ
Quels formats de code-barres sont décodés ?
Les codes 1D courants, dont CODE 128, EAN-13, EAN-8, UPC-A, UPC-E, CODE 39, CODE 93, ITF (Interleaved 2 of 5), Codabar, ainsi que les codes 2D comme QR Code, Data Matrix, Aztec et PDF417. La page utilise la bibliothèque ZXing dans votre navigateur pour détecter et décoder tous ces formats à partir d'une seule image téléversée.
L'image est-elle envoyée pour le décodage ?
Non. Le décodage se déroule entièrement dans votre navigateur via WebAssembly ou du JavaScript pur. Déposez l'image et les octets sont lus localement ; rien n'est envoyé à un serveur. Vous pouvez le vérifier dans l'onglet Réseau du navigateur.
Pourquoi mon code-barres ne se décode-t-il pas ?
Causes courantes : image floue, code-barres trop incliné par rapport à ce que le décodeur tolère, contraste trop faible ou reflets. Essayez de recadrer plus près du code-barres, d'augmenter la luminosité et le contraste, et veillez à ce que l'image fasse au moins 200 à 300 pixels de large pour le code complet. Les codes brillants photographiés sous une lumière directe échouent souvent.
Quels formats d'entrée sont acceptés ?
PNG, JPEG, GIF, WebP et BMP sont pris en charge. Téléversez un fichier, glissez-déposez ou collez depuis le presse-papiers. L'image est lue dans un canvas masqué pour le décodage ; rien n'est envoyé à un serveur.
Que contient le résultat ?
Le contenu textuel décodé et le format de code-barres détecté. Si le texte décodé est une URL, un bouton apparaît pour l'ouvrir dans un nouvel onglet. Le nombre de caractères et le nom du format sont également affichés.
Les chiffres de contrôle EAN-13 sont-ils validés ?
ZXing ne renvoie un résultat que lorsque le code-barres passe ses vérifications internes, y compris le chiffre de contrôle du format. Si le décodage échoue, la page affiche « No barcode detected » sans distinguer une image illisible d'une erreur de somme de contrôle.
Puis-je décoder plusieurs codes-barres depuis une seule image ?
La page détecte le code le plus net de l'image. Pour des images contenant plusieurs codes-barres, recadrez chacun d'eux individuellement et téléversez-les séparément pour des résultats plus fiables.