Bibliothek go-qrcode: QR-Codes in Go (Golang) generieren
\n\nQR-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.
Was ist go-qrcode?
\n\ngo-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.
Installation
\n\nDie Installation der Bibliothek erfolgt mit dem Standardbefehl go get:
go get github.com/skip2/go-qrcode\n\nDanach können Sie sie in Ihr Projekt importieren:
\n\nimport (\n "github.com/skip2/go-qrcode"\n)\n\nHauptfunktionen
\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
Codebeispiele
\n\n1. Einfachster QR-Code
\n\nWir generieren einen QR-Code für eine URL und speichern ihn in einer Datei:
\n\npackage 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\nIn diesem Beispiel verwenden wir die mittlere Fehlerkorrekturstufe (qrcode.Medium) und eine Bildgröße von 256x256 Pixeln.
2. Farbanpassung
\n\nWenn Sie eine nicht standardmäßige Farbe für den QR-Code benötigen, verwenden Sie die Struktur qrcode.Config:
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\n3. PNG als Bytes erhalten
\n\nManchmal muss das Bild nicht in einer Datei gespeichert, sondern über HTTP ausgeliefert oder weiterverarbeitet werden. Verwenden Sie dazu die Methode PNG():
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\n4. Generierung mit minimaler Größe
\n\nWenn 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:
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