QR कोड को चरण-दर-चरण बनाने की विधि
(nayuki.io)QR कोड निर्माण की चरण-दर-चरण प्रक्रिया
यह JavaScript डेमो एप्लिकेशन विस्तार से दिखाता है कि किसी टेक्स्ट स्ट्रिंग को QR कोड बारकोड सिंबल में कैसे encode किया जाता है। इस पेज की सामग्री बताती है और उचित ठहराती है कि QR कोड generator library अंदरूनी रूप से कैसे काम करती है।
उपयोगकर्ता इनपुट
- टेक्स्ट स्ट्रिंग: "Hello world"
- error correction level: low, medium, quartile, high
- न्यूनतम version force करना: 1 से 40 के बीच
- mask pattern force करना: automatic(-1) या manual(0 से 7)
QR कोड आउटपुट
चरण-दर-चरण प्रक्रिया
0. Unicode अक्षरों का विश्लेषण
- इनपुट टेक्स्ट स्ट्रिंग में code point की संख्या: 17
- प्रत्येक अक्षर का विवरण:
- index, character, Unicode code point, numeric mode, alphabet mode, byte mode, kanji mode में encode किया जा सकता है या नहीं
1. डेटा segment बनाना
- प्रत्येक अक्षर को bits में बदलना
- byte mode में अक्षर 8, 16, 24, 32 bits बनाते हैं
- बनाया गया एकल segment:
- mode: byte
- count: 17 bytes
- data: 136 bits लंबा
2. version number के अनुसार फिट करना
- segment सूची को दर्शाने के लिए आवश्यक कुल bit लंबाई
- version और error correction level के अनुसार QR कोड data codeword capacity
3. segment जोड़ना, padding जोड़ना, codeword बनाना
- अलग-अलग bit strings को जोड़ना
- segment mode, character count, data, terminator, bit padding, byte padding
4. block विभाजन, ECC जोड़ना, interleave करना
- सभी blocks के लिए आँकड़े
- data codewords को छोटे blocks और लंबे blocks में बाँटने के बाद ECC codewords की गणना और जोड़ना
5. fixed patterns बनाना
- horizontal और vertical timing patterns बनाना
- तीन कोनों में finder patterns बनाना
- alignment patterns की grid बनाना
- अस्थायी format bits बनाना
- version information blocks बनाना
6. codewords और शेष भाग बनाना
- zigzag scan की गणना करके सभी unfilled modules पर जाना
- zigzag scan क्रम और codewords के bit मान के अनुसार data/ECC modules बनाना
7. प्रत्येक mask लागू करने का प्रयास
- mask pattern लागू करना
- data, ECC, शेष modules पर mask XOR लागू करना
- वास्तविक format bits बनाना
8. penalty patterns ढूँढना
- एक ही रंग के horizontal और vertical module runs
- 2×2 एक ही रंग के module boxes
- horizontal और vertical finder patterns
- dark/light modules का संतुलन
9. penalty points की गणना, सर्वोत्तम mask चुनना
- penalty points की गणना करने की विधि
- सबसे कम कुल penalty points: mask pattern 3
अतिरिक्त जानकारी
- QR कोड डिज़ाइन पर Wikipedia और अन्य सामग्री के links उपलब्ध कराए जाते हैं
इस web application का source TypeScript code और compiled JavaScript code देखा जा सकता है।
1 टिप्पणियां
Hacker News राय
यह अफसोस की बात है कि QR कोड के बारे में ऑनलाइन व्याख्याओं में Reed-Solomon error code की गणना अक्सर छोड़ दी जाती है
Veritasium का QR code पर एक वीडियो है: "I used to hate QR codes. But they're actually genius"
लेखक को मिलने वाला feedback दिलचस्प है
QR code decoder के बारे में भी ऐसी ही व्याख्या देखना चाहूँगा
मैंने Rust में QR code implement किया था
लेख के शीर्षक में साल का टैग लगाना एक अच्छी प्रथा है (इस मामले में 2018)
QR code कैसे काम करते हैं, यह सीखना लंबे समय से मेरी करने वाली सूची में था, और यह एक अच्छा परिचय था
मैं जल्दी से QR code बनाना चाहता था, लेकिन बहुत ज़्यादा विज्ञापनों वाली साइटों और "इस्तेमाल करने के लिए register करें" कहने वाली साइटों की वजह से दिक्कत हुई
और भी विकल्प जोड़े जा सकते हैं, लेकिन मुझे लगता है कि ज़्यादातर users को उनकी ज़रूरत नहीं होगी
अब जब QR code के काम करने का तरीका समझ आ गया है, तो इसे SQL query में भी इस्तेमाल किया जा सकता है