C++ में QR कोड जनरेटर: पूर्ण गाइड
QR कोड आधुनिक वेब और मोबाइल एप्लिकेशन का एक अभिन्न अंग बन गए हैं। इनका उपयोग लिंक पर त्वरित पहुँच, संपर्क डेटा स्थानांतरण, भुगतान और प्रमाणीकरण के लिए किया जाता है। यदि आप C++ में डेवलप कर रहे हैं और बाहरी सेवाओं या API के बिना एक अंतर्निहित QR कोड जनरेटर की आवश्यकता है, तो यह लेख आपके लिए है। हम दो मुख्य लाइब्रेरीज़ पर चर्चा करेंगे: libqrencode (निम्न-स्तरीय, लचीला) और CQRcode (उच्च-स्तरीय, PNG आउटपुट के साथ)।
C++ में QR कोड क्यों जनरेट करें?
मुख्य उपयोग परिदृश्य:
- डेस्कटॉप एप्लिकेशन में ऑफ़लाइन जनरेशन (उत्पाद ट्रैकिंग, टिकट)।
- C++ सर्वर समाधानों में एम्बेड करना (उच्च प्रदर्शन)।
- सीमित संसाधनों के साथ काम करना (एम्बेडेड सिस्टम, माइक्रोकंट्रोलर)।
- एन्कोडिंग और त्रुटि सुधार प्रक्रिया पर पूर्ण नियंत्रण।
libqrencode लाइब्रेरी
libqrencode QR कोड बनाने के लिए सबसे लोकप्रिय C/C++ लाइब्रेरी है। यह ISO/IEC 18004 मानक को लागू करती है, सभी संस्करणों (1–40) और त्रुटि सुधार स्तरों (L, M, Q, H) का समर्थन करती है। लाइब्रेरी कॉम्पैक्ट है, इसमें कोई निर्भरता नहीं है, और यह Linux, macOS और Windows (MinGW या MSVC के माध्यम से) पर काम करती है।
इंस्टॉलेशन
# Linux (Debian/Ubuntu)sudo apt install libqrencode-dev
# macOS (Homebrew)brew install libqrencode
# Windows (vcpkg)vcpkg install libqrencodeबाइट ऐरे में QR कोड जनरेशन का उदाहरण (श्वेत-श्याम छवि)
#include <qrencode.h>#include <iostream>#include <vector>
int main() { // स्ट्रिंग "https://pythonlib.ru" के लिए QR कोड बनाएँ QRcode *qr = QRcode_encodeString("https://pythonlib.ru", 0, QR_ECLEVEL_M, QR_MODE_8, 1); if (!qr) { std::cerr << "QR कोड बनाने में त्रुटि"; return 1; }
int width = qr->width; std::cout << "QR कोड का आकार: " << width << "x" << width << "";
// डेटा: qr->data — बाइट ऐरे (0 या 1) for (int y = 0; y < width; ++y) { for (int x = 0; x < width; ++x) { bool black = (qr->data[y * width + x] & 0x01); std::cout << (black ? "██" : " "); } std::cout << ""; }
QRcode_free(qr); return 0;}यह कोड कंसोल में वर्णों के साथ QR कोड प्रिंट करता है। PNG या BMP में सेव करने के लिए अतिरिक्त प्रोसेसिंग की आवश्यकता होगी।
CQRcode लाइब्रेरी
CQRcode libqrencode के ऊपर एक रैपर है जो सीधे PNG फ़ाइल में परिणाम सहेज सकता है। यह तब आदर्श है जब आपको बिना अतिरिक्त कोड के तैयार ग्राफिकल फ़ाइल की आवश्यकता हो। यह रंग, मॉड्यूल आकार और केंद्रीय लोगो जोड़ने के कॉन्फ़िगरेशन का समर्थन करता है।
इंस्टॉलेशन
# GitHub से सोर्स डाउनलोड करें: https://github.com/rickyzhang82/CQRcode# CMake के माध्यम से बिल्ड करें:mkdir build && cd buildcmake ..makesudo make installQR कोड को PNG में सहेजने का उदाहरण
#include <CQRcode.h>
int main() { // जनरेटर ऑब्जेक्ट बनाएँ CQRcode qr; // डेटा सेट करें (URL, टेक्स्ट या vCard) qr.setData("BEGIN:VCARDVERSION:3.0FN:PythonLibURL:https://pythonlib.ruEND:VCARD"); // पैरामीटर कॉन्फ़िगर करें qr.setModuleSize(8); // पिक्सेल में एक मॉड्यूल का आकार qr.setMargin(4); // मार्जिन (सफेद बॉर्डर) qr.setCorrectionLevel(QR_ECLEVEL_H); // अधिकतम त्रुटि सुधार // फ़ाइल में सहेजें if (qr.savePNG("pythonlib_qr.png")) { // सफल } else { // त्रुटि } return 0;}लाइब्रेरीज़ की तुलना
- libqrencode — न्यूनतम, कच्चा डेटा देता है। आवश्यकता है