QR-Code-Generator in Go (Golang): 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

Bibliothek go-qrcode: QR-Codes in Go (Golang) generieren

\n\n

QR-Codes sind ein fester Bestandteil des modernen Webs und mobiler Anwendungen. Sie werden für schnelle Link-Navigation, die Übertragung von Kontaktdaten, Authentifizierung und vieles mehr verwendet. Wenn Ihr Projekt in Go (Golang) geschrieben ist, ist eine der besten Bibliotheken zur Erstellung von QR-Codes go-qrcode. In diesem Artikel werden wir ihre Funktionen, Installation und Anwendungsbeispiele im Detail besprechen.

\n\n

Was ist go-qrcode?

\n\n

go-qrcode ist eine reine Implementierung eines QR-Code-Generators in der Sprache Go. Sie hat keine externen Abhängigkeiten (außer der Standardbibliothek) und unterstützt alle grundlegenden Funktionen: Anpassung von Größe, Fehlerkorrekturstufe, Farbe und Hintergrund. Die Bibliothek kann sowohl PNG-Bilder generieren als auch rohe Binärdaten zur weiteren Verarbeitung zurückgeben.

\n\n

Installation

\n\n

Die Installation der Bibliothek erfolgt mit dem Standardbefehl go get:

\n\n
go get github.com/skip2/go-qrcode
\n\n

Danach können Sie sie in Ihr Projekt importieren:

\n\n
import (\n    "github.com/skip2/go-qrcode"\n)
\n\n

Hauptfunktionen

\n\n
    \n
  • Generierung von PNG-Bildern – der häufigste Anwendungsfall.
  • \n
  • Einstellung der Fehlerkorrekturstufe – Low, Medium, High, Highest.
  • \n
  • Größenänderung – von 21x21 bis 177x177 Modulen.
  • \n
  • Farbanpassung – Vordergrund- und Hintergrundfarbe können festgelegt werden.
  • \n
  • Unicode-Unterstützung – jeder Text, einschließlich Kyrillisch, kann codiert werden.
  • \n
  • Ausgabe im Rohformat – Byte-Array für benutzerdefinierte Verarbeitung.
  • \n
\n\n

Codebeispiele

\n\n

1. Einfachster QR-Code

\n\n

Wir generieren einen QR-Code für eine URL und speichern ihn in einer Datei:

\n\n
package main\n\nimport (\n    "github.com/skip2/go-qrcode"\n)\n\nfunc main() {\n    err := qrcode.WriteFile("https://pythonlib.ru", qrcode.Medium, 256, "qrcode.png")\n    if err != nil {\n        panic(err)\n    }\n}
\n\n

In diesem Beispiel verwenden wir die mittlere Fehlerkorrekturstufe (qrcode.Medium) und eine Bildgröße von 256x256 Pixeln.

\n\n

2. Farbanpassung

\n\n

Wenn Sie eine nicht standardmäßige Farbe für den QR-Code benötigen, verwenden Sie die Struktur qrcode.Config:

\n\n
package main\n\nimport (\n    "image/color"\n    "github.com/skip2/go-qrcode"\n)\n\nfunc main() {\n    qr, err := qrcode.New("Hallo, Welt!", qrcode.Highest)\n    if err != nil {\n        panic(err)\n    }\n\n    // Farbeinstellung\n    qr.ForegroundColor = color.RGBA{R: 0, G: 150, B: 255, A: 255} // blau\n    qr.BackgroundColor = color.RGBA{R: 255, G: 255, B: 255, A: 255} // weiß\n\n    err = qr.WriteFile(256, "custom_qrcode.png")\n    if err != nil {\n        panic(err)\n    }\n}
\n\n

3. PNG als Bytes erhalten

\n\n

Manchmal muss das Bild nicht in einer Datei gespeichert, sondern über HTTP ausgeliefert oder weiterverarbeitet werden. Verwenden Sie dazu die Methode PNG():

\n\n
package main\n\nimport (\n    "fmt"\n    "github.com/skip2/go-qrcode"\n)\n\nfunc main() {\n    qr, err := qrcode.New("https://example.com", qrcode.Low)\n    if err != nil {\n        panic(err)\n    }\n\n    pngBytes, err := qr.PNG(256)\n    if err != nil {\n        panic(err)\n    }\n\n    fmt.Printf("PNG-Größe: %d Bytes\\n", len(pngBytes))\n    // Jetzt können pngBytes in einer HTTP-Antwort gesendet oder gespeichert werden\n}
\n\n

4. Generierung mit minimaler Größe

\n\n

Wenn Sie den kleinstmöglichen QR-Code erhalten möchten, verwenden Sie die Methode ToQRTerminal() zum Debuggen im Terminal oder legen Sie die minimale Modulgröße fest:

\n\n
package main\n\nimport (\n    "fmt"\n    "github.com/skip2/go-qrcode"\n)\n\nfunc main() {\n    qr, err := qrcode.New("1234567890", qrcode.High)\n    if err != nil {\n        panic(er                    

Empfehlungen