QR-Code-Generator in Go (Golang) mit der Bibliothek go-qrcode

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

QR-Code-Generator in Go (Golang): Bibliothek go-qrcode



QR-Codes sind zu einem unverzichtbaren Bestandteil des modernen Webs geworden – von Links zu Websites bis zur Übertragung von Kontaktdaten. Wenn Sie in Go (Golang) entwickeln und die Generierung von QR-Codes in Ihre Anwendung integrieren möchten, ist die Bibliothek go-qrcode die ideale Lösung. Sie ist leichtgewichtig, vollständig in Go ohne externe Abhängigkeiten geschrieben und unterstützt alle gängigen QR-Code-Versionen.



Installation und Einrichtung



Um zu beginnen, installieren Sie das Paket über den standardmäßigen Go-Modul-Manager:



go get github.com/skip2/go-qrcode


Die Bibliothek benötigt keine zusätzlichen Systembibliotheken – alles funktioniert sofort. Unterstützt wird Go Version 1.13 und höher.



Grundlegende Verwendung: Erstellen des ersten QR-Codes



Der einfachste Weg, einen QR-Code zu generieren, ist die Verwendung der Funktion WriteFile. Sie erstellt ein PNG-Bild direkt auf der Festplatte:



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) }}


In diesem Beispiel erstellen wir einen QR-Code für die URL https://pythonlib.ru mit der Fehlerkorrekturstufe Medium und einer Größe von 256x256 Pixeln. Das Ergebnis wird in der Datei qr.png gespeichert.



Generierungsparameter



Die Funktion WriteFile akzeptiert vier Argumente:



  • content (string) – die zu kodierenden Daten (Text, URL, Telefonnummer usw.)
  • level (RecoveryLevel) – die Fehlerkorrekturstufe. Verfügbare Werte:
    • qrcode.Low – 7% Wiederherstellung
    • qrcode.Medium – 15% Wiederherstellung
    • qrcode.High – 25% Wiederherstellung
    • qrcode.Highest – 30% Wiederherstellung
  • size (int) – die Bildgröße in Pixeln (normalerweise zwischen 128 und 1024)
  • filename (string) – der Pfad zur Ausgabedatei (die Erweiterung .png ist erforderlich)


Generierung eines QR-Codes im Arbeitsspeicher (ohne Speichern auf der Festplatte)



Wenn Sie den QR-Code als PNG-Bytes erhalten möchten (z. B. zum Senden über HTTP oder zum Speichern in einer Datenbank), verwenden Sie die Methode PNG:



package main

import ( "bytes" "image/png" "log" "github.com/skip2/go-qrcode")

func main() { // QR-Code erstellen qr, err := qrcode.New("https://pythonlib.ru", qrcode.Medium) if err != nil { log.Fatal(err) }

// Bild als *image.RGBA abrufen img := qr.Image(256)

// In PNG kodieren und Bytes abrufen var buf bytes.Buffer err = png.Encode(&buf, img) if err != nil { log.Fatal(err) }

// Jetzt enthält buf.Bytes() die PNG-Daten log.Printf("QR-Code generiert, Größe: %d Bytes", buf.Len())}


Dieser Ansatz ist praktisch für Webserver: Sie können den QR-Code direkt in der HTTP-Antwort ausliefern, ohne temporäre Dateien zu erstellen.



Anpassung von Farben und Hintergrund



Standardmäßig ist der QR-Code schwarz-weiß, aber die Bibliothek ermöglicht Farbänderungen. Verwenden Sie die Methoden ForegroundColor und 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) }

// Blaue Farbe für die Module und Weiß für den Hintergrund festlegen qr.ForegroundColor = color.RGBA{0, 0, 255, 255} // blau qr.BackgroundColor = color.RGBA{255, 255, 255, 255} // weiß

// Mit neuen Farben speichern err = qr.WriteFile(256, "colorful_qr.png") if err != nil { log.Fatal(err) }}

Empfehlungen