Générateur de QR codes en Go (Golang) avec la bibliothèque go-qrcode

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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-qrcode


La 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ération
    • qrcode.Medium — 15% de récupération
    • qrcode.High — 25% de récupération
    • qrcode.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) }}

Recommendations