Rust में QR कोड जनरेटर: आपके प्रोजेक्ट के लिए शक्तिशाली टूल
QR कोड आधुनिक वेब का अहम हिस्सा बन चुके हैं: लिंक, कॉन्टैक्ट, Wi-Fi पासवर्ड — ये सब एक वर्गाकार इमेज में एन्कोड किए जा सकते हैं। अगर आप Rust में कोई एजुकेशनल साइट या सर्विस बना रहे हैं, तो QR कोड जनरेट करना एक उपयोगी फीचर हो सकता है। इस आर्टिकल में हम Rust की qrcode लाइब्रेरी के बारे में जानेंगे, QR कोड बनाना, उनका लुक कस्टमाइज़ करना और वेब ऐप में इंटीग्रेट करना सीखेंगे।
Rust एक सिस्टम प्रोग्रामिंग भाषा है जो परफॉरमेंस और सुरक्षा के लिए जानी जाती है। qrcode लाइब्रेरी Rust के सभी फायदों का उपयोग करती है: यह तेज़ है, बाहरी डिपेंडेंसी की ज़रूरत नहीं है, और किसी भी प्रोजेक्ट में आसानी से जुड़ जाती है। आइए जानते हैं कि इसकी मदद से QR कोड कैसे जनरेट करें।
इंस्टॉलेशन और सेटअप
Rust में QR कोड के साथ काम करने के लिए हमें qrcode क्रेट चाहिए और इमेज सेव करने के लिए image क्रेट की ज़रूरत होगी। इन्हें Cargo.toml फ़ाइल में जोड़ें:
[dependencies]
qrcode = "0.14"
image = "0.24"
इसके बाद cargo build कमांड चलाकर डिपेंडेंसी डाउनलोड करें।
बेसिक उदाहरण: कंसोल में QR कोड जनरेट करना
पहला उदाहरण सबसे सरल है: हम QR कोड सीधे टर्मिनल में प्रिंट करेंगे। यह डिबगिंग के लिए या जब इमेज सेव करने की ज़रूरत न हो, तब उपयोगी है।
use qrcode::QrCode;
use qrcode::render::unicode;
fn main() {
// स्ट्रिंग से QR कोड बनाएँ
let code = QrCode::new("https://pythonlib.ru").unwrap();
// Unicode कैरेक्टर में रेंडर करें
let image = code.render::<unicode::Dense1x2>()
.dark_color(unicode::Dense1x2::Dark)
.light_color(unicode::Dense1x2::Light)
.build();
println!("{}", image);
}
इस कोड में:
QrCode::new()— स्ट्रिंग से QR कोड बनाता है। अगर स्ट्रिंग बहुत लंबी है, तो यह एरर लौटाएगा — उदाहरणों में.unwrap()का उपयोग सिर्फ डेमो के लिए है।render::<unicode::Dense1x2>— Unicode रेंडरर चुनता है। यह स्यूडोग्राफिक कैरेक्टर से कोड प्रिंट करता है।dark_colorऔरlight_color— डार्क और लाइट मॉड्यूल के लिए कैरेक्टर सेट करते हैं।
प्रोग्राम चलाएँ — टर्मिनल में एक QR कोड दिखेगा जिसे फोन से स्कैन किया जा सकता है।
QR कोड को PNG इमेज में सेव करना
रियल प्रोजेक्ट्स में टेक्स्ट नहीं, बल्कि इमेज की ज़रूरत होती है। qrcode लाइब्रेरी image क्रेट के ज़रिए रास्टर इमेज रेंडरिंग सपोर्ट करती है।
use qrcode::QrCode;
use image::Luma;
fn main() {
let code = QrCode::new("https://pythonlib.ru").unwrap();
// इमेज में रेंडर करें (मॉड्यूल साइज़ 8 पिक्सल)
let image = code.render::<Luma<u8>>()
.min_dimensions(200, 200) // न्यूनतम साइज़
.dark_color(Luma([0u8])) // काला
.light_color(Luma([255u8])) // सफेद
.build();
// फ़ाइल में सेव करें
image.save("qrcode.png").unwrap();
println!("QR कोड qrcode.png में सेव हो गया");
}
यहाँ:
Luma<u8>— ब्लैक-एंड-व्हाइट इमेज के लिए पिक्सल टाइप।min_dimensions(200, 200)— न्यूनतम चौड़ाई और ऊँचाई सेट करता है। QR कोड ऑटोमैटिकली स्केल हो जाता है।dark_colorऔरlight_color— मॉड्यूल के रंग (काला और सफेद)।
प्रोग्राम चलाने के बाद प्रोजेक्ट की रूट डायरेक्टरी में qrcode.png फ़ाइल बन जाएगी।
रंग और साइज़ कस्टमाइज़ करना
आप RGB वैल्यू का उपयोग करके QR कोड के रंग बदल सकते हैं। उदाहरण के लिए, पीले बैकग्राउंड पर नीला QR कोड बनाएँ:
use qrcode::QrCode;
use image::Rgb;
fn main() {
let code = QrCode::new("https://pythonlib.ru").unwrap();
let image = code.render::<Rgb<u8>>()
.min_dimensions(300, 300)
.dark_color(Rgb([0, 100, 200])) // नीला
.light_color(Rgb([255, 255, 0])) // पीला