Go (Golang) पर QR कोड जनरेटर: go-qrcode लाइब्रेरी
QR कोड आधुनिक वेब का एक अभिन्न अंग बन गए हैं - वेबसाइट लिंक से लेकर संपर्क डेटा ट्रांसफर करने तक। यदि आप Go (Golang) में डेवलप कर रहे हैं और अपने एप्लिकेशन में QR कोड जनरेशन को शामिल करना चाहते हैं, तो go-qrcode लाइब्रेरी एक आदर्श समाधान है। यह हल्की है, पूरी तरह से बिना किसी बाहरी निर्भरता के Go में लिखी गई है, और QR कोड के सभी प्रमुख संस्करणों को सपोर्ट करती है।
इंस्टॉलेशन और सेटअप
शुरू करने के लिए, मानक Go मॉड्यूल मैनेजर के माध्यम से पैकेज इंस्टॉल करें:
go get github.com/skip2/go-qrcodeलाइब्रेरी को किसी अतिरिक्त सिस्टम लाइब्रेरी की आवश्यकता नहीं है - यह बॉक्स से बाहर काम करती है। Go संस्करण 1.13 और उससे ऊपर का समर्थन करती है।
बेसिक उपयोग: अपना पहला QR कोड बनाना
QR कोड जनरेट करने का सबसे आसान तरीका WriteFile फ़ंक्शन का उपयोग करना है। यह सीधे डिस्क पर PNG इमेज बनाता है:
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) }}इस उदाहरण में, हम URL https://pythonlib.ru के लिए Medium त्रुटि सुधार स्तर और 256x256 पिक्सेल आकार के साथ एक QR कोड बना रहे हैं। परिणाम qr.png फ़ाइल में सेव होता है।
जनरेशन पैरामीटर
WriteFile फ़ंक्शन चार आर्गुमेंट लेता है:
- content (string) — एन्कोड करने के लिए डेटा (टेक्स्ट, URL, फ़ोन नंबर, आदि)
- level (RecoveryLevel) — त्रुटि सुधार स्तर। उपलब्ध मान:
qrcode.Low— 7% रिकवरीqrcode.Medium— 15% रिकवरीqrcode.High— 25% रिकवरीqrcode.Highest— 30% रिकवरी
- size (int) — पिक्सेल में इमेज का आकार (आमतौर पर 128 से 1024 तक)
- filename (string) — आउटपुट फ़ाइल का पथ (.png एक्सटेंशन अनिवार्य)
मेमोरी में QR कोड जनरेशन (डिस्क पर सेव किए बिना)
यदि आपको QR कोड को PNG बाइट्स के रूप में प्राप्त करने की आवश्यकता है (उदाहरण के लिए, HTTP के माध्यम से भेजने या डेटाबेस में सेव करने के लिए), तो PNG विधि का उपयोग करें:
package main
import ( "bytes" "image/png" "log" "github.com/skip2/go-qrcode")
func main() { // QR कोड बनाएँ qr, err := qrcode.New("https://pythonlib.ru", qrcode.Medium) if err != nil { log.Fatal(err) }
// इमेज को *image.RGBA के रूप में प्राप्त करें img := qr.Image(256)
// PNG में एन्कोड करें और बाइट्स प्राप्त करें var buf bytes.Buffer err = png.Encode(&buf, img) if err != nil { log.Fatal(err) }
// अब buf.Bytes() में PNG डेटा है log.Printf("QR कोड जनरेट हुआ, आकार: %d बाइट", buf.Len())}यह दृष्टिकोण वेब सर्वर के लिए सुविधाजनक है: आप अस्थायी फ़ाइलें बनाए बिना सीधे HTTP प्रतिक्रिया में QR कोड दे सकते हैं।
रंग और पृष्ठभूमि सेटिंग
डिफ़ॉल्ट रूप से, QR कोड काले और सफेद होता है, लेकिन लाइब्रेरी रंग बदलने की अनुमति देती है। ForegroundColor और 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) }
// मॉड्यूल के लिए नीला रंग और पृष्ठभूमि के लिए सफेद सेट करें qr.ForegroundColor = color.RGBA{0, 0, 255, 255} // नीला qr.BackgroundColor = color.RGBA{255, 255, 255, 255} // सफेद
// नए रंगों के साथ सेव करें err = qr.WriteFile(256, "colorful_qr.png") if err != nil { log.Fatal(err) }}