Générateur de QR codes en Rust : un outil puissant pour votre projet
\n\nLes QR codes sont devenus une partie intégrante du web moderne : liens, contacts, mots de passe Wi-Fi — tout peut être encodé dans une image carrée. Si vous développez un site éducatif ou un service en Rust, la génération de QR codes peut être une fonctionnalité utile. Dans cet article, nous allons explorer la bibliothèque qrcode pour Rust, apprendre à créer des QR codes, personnaliser leur apparence et les intégrer dans des applications web.
Rust est un langage de programmation système apprécié pour ses performances et sa sécurité. La bibliothèque qrcode tire parti de tous les avantages de Rust : elle est rapide, ne nécessite pas de dépendances externes et s'intègre facilement dans n'importe quel projet. Voyons comment générer des QR codes avec elle.
Installation et configuration
\n\nPour travailler avec les QR codes en Rust, nous avons besoin de la crate qrcode et, si nous devons enregistrer des images, de la crate image. Ajoutez-les au fichier Cargo.toml :
[dependencies]\nqrcode = "0.14"\nimage = "0.24"\n\nEnsuite, exécutez cargo build pour télécharger les dépendances.
Exemple de base : génération d'un QR code dans la console
\n\nLe premier exemple est le plus simple : nous allons afficher le QR code directement dans le terminal. C'est pratique pour le débogage ou lorsque vous n'avez pas besoin de sauvegarder l'image.
\n\nuse qrcode::QrCode;\nuse qrcode::render::unicode;\n\nfn main() {\n // Créer un QR code à partir d'une chaîne\n let code = QrCode::new("https://pythonlib.ru").unwrap();\n\n // Rendre en caractères Unicode\n let image = code.render::<unicode::Dense1x2>()\n .dark_color(unicode::Dense1x2::Dark)\n .light_color(unicode::Dense1x2::Light)\n .build();\n\n println!("{}", image);\n}\n\nDans ce code :
\n- \n
QrCode::new()— crée un QR code à partir d'une chaîne. Si la chaîne est trop longue, la méthode retournera une erreur — utilisez.unwrap()uniquement pour les exemples. \n render::<unicode::Dense1x2>— sélectionne le rendu Unicode. Il affiche le code à l'aide de caractères de pseudo-graphisme. \n dark_coloretlight_color— définissent les caractères pour les modules sombres et clairs. \n
Exécutez le programme — un QR code apparaîtra dans le terminal, que vous pourrez scanner avec votre téléphone.
\n\nSauvegarde du QR code en image PNG
\n\nPour les projets réels, vous avez besoin d'une image, pas de texte. La bibliothèque qrcode prend en charge le rendu en images matricielles via la crate image.
use qrcode::QrCode;\nuse image::Luma;\n\nfn main() {\n let code = QrCode::new("https://pythonlib.ru").unwrap();\n\n // Rendre en image (taille du module 8 pixels)\n let image = code.render::<Luma<u8>>()\n .min_dimensions(200, 200) // taille minimale\n .dark_color(Luma([0u8])) // noir\n .light_color(Luma([255u8])) // blanc\n .build();\n\n // Sauvegarder dans un fichier\n image.save("qrcode.png").unwrap();\n println!("QR code sauvegardé dans qrcode.png");\n}\n\nIci :
\n- \n
Luma<u8>— type de pixel pour une image en noir et blanc. \n min_dimensions(200, 200)— définit la largeur et la hauteur minimales. Le QR code est automatiquement mis à l'échelle. \n dark_coloretlight_color— couleurs des modules (noir et blanc). \n
Après l'exécution du programme, un fichier qrcode.png apparaîtra à la racine du projet.
Personnalisation de la couleur et de la taille
\n\nVous pouvez modifier les couleurs du QR code en utilisant des valeurs RVB. Par exemple, créons un QR code bleu sur fond jaune :
\n\nuse qrcode::QrCode;\nuse image::Rgb;\n\nfn main() {\n let code = QrCode::new("https://pythonlib.ru").unwrap();\n\n let image = code.render::<Rgb<u8>>()\n .min_dimensions(300, 300)\n .dark_color(Rgb([0, 100, 200])) // bleu Aussi dans la bibliothèque
Traitement d'images en C# (.NET) : bibliothèques et exemples de code
Travailler avec Apache Kafka dans Node.js : la bibliothèque KafkaJS
Ktor pour Kotlin : guide complet avec exemples
Travailler avec CSV en PHP : lecture, écriture et traitement des données
AutoMapper pour C# (.NET) : guide complet avec exemples