Générateur de QR codes en Go (Golang) : bibliothèque go-qrcode
Les QR codes sont devenus une partie intégrante du web moderne — des liens vers des sites web à la transmission de données de contact. Si vous développez en Go (Golang) et souhaitez intégrer la génération de QR codes dans votre application, la bibliothèque go-qrcode est la solution idéale. Elle est légère, entièrement écrite en Go sans dépendances externes et prend en charge toutes les versions principales de QR codes.
Installation et configuration
Pour commencer, installez le paquet via le gestionnaire de modules Go standard :
go get github.com/skip2/go-qrcodeLa bibliothèque ne nécessite aucune bibliothèque système supplémentaire — tout fonctionne prêt à l'emploi. Go version 1.13 et supérieure est pris en charge.
Utilisation de base : créer votre premier QR code
La façon la plus simple de générer un QR code est d'utiliser la fonction WriteFile. Elle crée une image PNG directement sur le disque :
package main
import ( "github.com/skip2/go-qrcode")
func main() { err := qrcode.WriteFile("https://pythonlib.ru", qrcode.Medium, 256, "qr.png") if err != nil { panic(err) }}Dans cet exemple, nous créons un QR code pour l'URL https://pythonlib.ru avec un niveau de correction d'erreurs Medium et une taille de 256x256 pixels. Le résultat est enregistré dans le fichier qr.png.
Paramètres de génération
La fonction WriteFile prend quatre arguments :
- content (string) — les données à encoder (texte, URL, numéro de téléphone, etc.)
- level (RecoveryLevel) — le niveau de correction d'erreurs. Valeurs disponibles :
qrcode.Low— 7% de récupérationqrcode.Medium— 15% de récupérationqrcode.High— 25% de récupérationqrcode.Highest— 30% de récupération
- size (int) — la taille de l'image en pixels (généralement de 128 à 1024)
- filename (string) — le chemin vers le fichier de sortie (l'extension .png est obligatoire)
Génération de QR code en mémoire (sans sauvegarde sur disque)
Si vous avez besoin d'obtenir le QR code sous forme d'octets PNG (par exemple, pour l'envoyer via HTTP ou le sauvegarder dans une base de données), utilisez la méthode PNG :
package main
import ( "bytes" "image/png" "log" "github.com/skip2/go-qrcode")
func main() { // Créer le QR code qr, err := qrcode.New("https://pythonlib.ru", qrcode.Medium) if err != nil { log.Fatal(err) }
// Obtenir l'image en tant que *image.RGBA img := qr.Image(256)
// Encoder en PNG et obtenir les octets var buf bytes.Buffer err = png.Encode(&buf, img) if err != nil { log.Fatal(err) }
// Maintenant, buf.Bytes() contient les données PNG log.Printf("QR code généré, taille : %d octets", buf.Len())}Cette approche est pratique pour les serveurs web : vous pouvez servir le QR code directement dans la réponse HTTP, sans créer de fichiers temporaires.
Personnalisation des couleurs et de l'arrière-plan
Par défaut, le QR code est en noir et blanc, mais la bibliothèque permet de changer les couleurs. Utilisez les méthodes ForegroundColor et BackgroundColor :
package main
import ( "image/color" "log" "github.com/skip2/go-qrcode")
func main() { qr, err := qrcode.New("https://pythonlib.ru", qrcode.High) if err != nil { log.Fatal(err) }
// Définir la couleur bleue pour les modules et le blanc pour l'arrière-plan qr.ForegroundColor = color.RGBA{0, 0, 255, 255} // bleu qr.BackgroundColor = color.RGBA{255, 255, 255, 255} // blanc
// Enregistrer avec les nouvelles couleurs err = qr.WriteFile(256, "colorful_qr.png") if err != nil { log.Fatal(err) }} Aussi dans la bibliothèque
SQLite pour C++ : guide complet avec exemples
Frameworks CLI pour PHP : création d'applications console avec Symfony Console et Laravel Zero
Générateur de QR codes en TypeScript : qrcode.js et qrcode-generator
Mise en cache en Rust : Redis, Memcached et solutions intégrées
Actors Swift : guide complet avec exemples concrets