Go (Golang) में QR कोड जनरेटर: go-qrcode लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

go-qrcode लाइब्रेरी: Go (Golang) में QR कोड जनरेशन

QR कोड आधुनिक वेब और मोबाइल एप्लिकेशन का एक अहम हिस्सा बन गए हैं। इनका उपयोग लिंक पर तुरंत जाने, कॉन्टैक्ट डेटा ट्रांसफर करने, ऑथेंटिकेशन और कई अन्य कामों के लिए किया जाता है। अगर आपका प्रोजेक्ट Go (Golang) में लिखा है, तो QR कोड बनाने के लिए सबसे बेहतरीन लाइब्रेरी go-qrcode है। इस आर्टिकल में हम इसकी क्षमताओं, इंस्टॉलेशन और उपयोग के उदाहरणों को विस्तार से समझेंगे।

go-qrcode क्या है?

go-qrcode Go भाषा में QR कोड जनरेटर का एक शुद्ध इम्प्लीमेंटेशन है। इसकी कोई बाहरी डिपेंडेंसी नहीं है (सिर्फ स्टैंडर्ड लाइब्रेरी) और यह सभी मुख्य फीचर्स को सपोर्ट करता है: साइज़ सेट करना, एरर करेक्शन लेवल, रंग और बैकग्राउंड। यह लाइब्रेरी PNG इमेज के साथ-साथ आगे की प्रोसेसिंग के लिए रॉ बाइनरी डेटा भी जनरेट कर सकती है।

इंस्टॉलेशन

लाइब्रेरी को इंस्टॉल करने के लिए स्टैंडर्ड go get कमांड का उपयोग करें:

go get github.com/skip2/go-qrcode

इसके बाद आप इसे अपने प्रोजेक्ट में इम्पोर्ट कर सकते हैं:

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

मुख्य विशेषताएं

  • PNG इमेज जनरेशन — सबसे लोकप्रिय उपयोग का मामला।
  • एरर करेक्शन लेवल सेट करना — Low, Medium, High, Highest।
  • साइज़ बदलना — 21x21 से 177x177 मॉड्यूल तक।
  • रंग सेट करना — फोरग्राउंड और बैकग्राउंड रंग बदल सकते हैं।
  • Unicode सपोर्ट — कोई भी टेक्स्ट एनकोड कर सकते हैं, जिसमें हिंदी भी शामिल है।
  • रॉ फॉर्मेट में आउटपुट — कस्टम प्रोसेसिंग के लिए बाइट्स का ऐरे।

कोड उदाहरण

1. सबसे सरल QR कोड

एक URL के लिए QR कोड जनरेट करें और फाइल में सेव करें:

package main

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

func main() {
    err := qrcode.WriteFile("https://pythonlib.ru", qrcode.Medium, 256, "qrcode.png")
    if err != nil {
        panic(err)
    }
}

इस उदाहरण में हम मीडियम एरर करेक्शन लेवल (qrcode.Medium) और 256x256 पिक्सल का इमेज साइज़ उपयोग कर रहे हैं।

2. रंग सेट करना

अगर आपको QR कोड का कस्टम रंग चाहिए, तो qrcode.Config स्ट्रक्चर का उपयोग करें:

package main

import (
    "image/color"
    "github.com/skip2/go-qrcode"
)

func main() {
    qr, err := qrcode.New("नमस्ते दुनिया!", qrcode.Highest)
    if err != nil {
        panic(err)
    }

    // रंग सेट करना
    qr.ForegroundColor = color.RGBA{R: 0, G: 150, B: 255, A: 255} // नीला
    qr.BackgroundColor = color.RGBA{R: 255, G: 255, B: 255, A: 255} // सफेद

    err = qr.WriteFile(256, "custom_qrcode.png")
    if err != nil {
        panic(err)
    }
}

3. PNG को बाइट्स के रूप में प्राप्त करना

कभी-कभी फाइल सेव करने की बजाय HTTP के जरिए इमेज भेजनी होती है या आगे प्रोसेस करनी होती है। इसके लिए PNG() मेथड का उपयोग करें:

package main

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

func main() {
    qr, err := qrcode.New("https://example.com", qrcode.Low)
    if err != nil {
        panic(err)
    }

    pngBytes, err := qr.PNG(256)
    if err != nil {
        panic(err)
    }

    fmt.Printf("PNG का साइज़: %d बाइट\n", len(pngBytes))
    // अब pngBytes को HTTP रिस्पॉन्स में भेजा जा सकता है या सेव किया जा सकता है
}

4. न्यूनतम साइज़ के साथ जनरेशन

अगर आप सबसे छोटा संभव QR कोड चाहते हैं, तो टर्मिनल में डिबगिंग के लिए ToQRTerminal() मेथड का उपयोग करें, या मॉड्यूल का न्यूनतम साइज़ सेट करें:

package main

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

func main() {
    qr, err := qrcode.New("1234567890", qrcode.High)
    if err != nil {
        panic(err)
    }

    // टर्मिनल में आउटपुट (डिबगिंग के लिए)
    fmt.Println(qr.ToSmallString(false))
}

एरर करेक्शन लेवल

अनुशंसाएँ