Bibliothèque QR-Code-generator pour C++ : guide complet
\n\nLes QR codes sont devenus une partie intégrante du monde numérique moderne. Ils sont utilisés dans la publicité, la logistique, les systèmes de paiement et même dans les projets éducatifs. Si vous développez une application en C++ et souhaitez ajouter des fonctionnalités de génération de QR codes, la bibliothèque QR-Code-generator est un outil simple, léger et efficace. Dans cet article, nous allons détailler ce qu'est cette bibliothèque, comment l'installer, et montrer des exemples de code fonctionnels.
\n\nQu'est-ce que QR-Code-generator ?
\nQR-Code-generator est une bibliothèque multiplateforme en C++ (également disponible en C, Python, Java) qui permet de créer des QR codes de différentes versions et niveaux de correction d'erreurs. Principaux avantages :
\n- \n
- Aucune dépendance externe (fonctionne « prêt à l'emploi »). \n
- Prend en charge les 40 versions de QR codes (de 21×21 à 177×177 modules). \n
- Niveaux de correction d'erreurs : L (7 %), M (15 %), Q (25 %), H (30 %). \n
- Sortie sous forme de chaîne (
char*) ou de tableau binaire. \n - Prise en charge d'Unicode (UTF-8) et des modes numériques/alphabétiques. \n
La bibliothèque est idéale pour une intégration dans des applications serveur, des utilitaires en ligne de commande ou des projets éducatifs en C++.
\n\nInstallation et configuration
\nL'installation est extrêmement simple. Vous pouvez télécharger les sources depuis le dépôt GitHub de Nayuki ou utiliser un gestionnaire de paquets (par exemple, vcpkg). Voici la méthode manuelle :
\n- \n
- Téléchargez les fichiers
qrcodegen.hppetqrcodegen.cpp. \n - Placez-les dans le dossier de votre projet. \n
- Incluez le fichier d'en-tête dans le code :
#include "qrcodegen.hpp". \n - Compilez le projet avec le flag
-std=c++11ou supérieur. \n
Exemple de compilation avec g++ :
\ng++ -std=c++11 main.cpp qrcodegen.cpp -o qr_generator\n\nFonctions principales de l'API
\nLa bibliothèque fournit une API minimaliste mais puissante. Fonctions principales :
\n- \n
qrcodegen::QrCode::encodeText(text, ecl)— encode une chaîne de texte en QR code avec le niveau de correction spécifié. \n qrcodegen::QrCode::encodeBinary(data, ecl)— encode des données binaires. \n getSize()— retourne la taille du QR code (nombre de modules en largeur). \n getModule(x, y)— vérifie si le module (pixel) aux coordonnées (x, y) est activé. \n
Exemple 1 : Génération d'un QR code et affichage dans la console
\nL'exemple le plus simple est de créer un QR code pour une chaîne de texte et de l'afficher sous forme de graphique ASCII. Ce code est utile pour le débogage ou la démonstration dans un terminal.
\n#include <iostream>\n#include <string>\n#include "qrcodegen.hpp"\n\nusing namespace std;\nusing namespace qrcodegen;\n\nint main() {\n // Créer un QR code pour le texte avec le niveau de correction H (30%)\n const QrCode qr = QrCode::encodeText("https://pythonlib.ru", QrCode::Ecc::HIGH);\n \n // Afficher le QR code dans la console (caractères █ et espace)\n for (int y = 0; y < qr.getSize(); y++) {\n for (int x = 0; x < qr.getSize(); x++) {\n cout << (qr.getModule(x, y) ? "██" : " ");\n }\n cout << endl;\n }\n return 0;\n}\nRésultat : La console affichera un QR code qui peut être scanné par n'importe quel smartphone. Le niveau H offre une résistance maximale aux dommages.
\n\nExemple 2 : Création d'un QR code avec des données binaires
\nParfois, il est nécessaire d'encoder non pas du texte, mais des octets arbitraires (par exemple, des données sérialisées). Utilisez encodeBinary.
#include <vector>\n#include "qrcodegen.hpp"\n\nusing namespace qrcodegen;\n\nint main() {\n // Préparer les données binaires (tableau d'octets)\n std::vector<uint8 Aussi dans la bibliothèque
Swift Data pour Swift : guide complet avec exemples
Traitement d'images en Node.js : redimensionnement et recadrage avec Sharp et Jimp
Génération de PDF en JavaScript (Node.js) : bibliothèques et outils
gRPC pour TypeScript : bibliothèques et exemples d'utilisation