/ / Zteing में बाइट [] वापस बारकोड में कैसे परिवर्तित करें - zxing

बाइट [] वापस जेडएक्सिंग में बारकोड में कैसे परिवर्तित करें - zxing

ZXing.Result प्राप्त हुआ ZXing.BarcodeReader की एक संपत्ति प्रदान करता है RawBytes का byte[]। हालांकि, मैंने कोशिश की है लेकिन एक समारोह खोजने में असमर्थ रहा है ZXing.BarcodeWriter जो स्वीकार करता है byte[] इसके तर्क के रूप में।

मैं से एक बारकोड चाहते हैं ZXing.BarcodeWriter जो बिल्कुल वैसा ही है ZXing.BarcodeReader पढ़ता है।

कहें, एक बारकोड कोड 128 के रूप में जाना जाता है,

BarcodeReader देता है RawBytes 3 बाइट्स से शुरू होता है, 105, 102, 42,

जिसका अर्थ है [प्रारंभ कोड सी], [एफएनसी 1], [42] कोड 128 में,

जिसका मतलब है कि बारकोड 2 अंकों के साथ शुरू होता है 4, 2.

ऐसे फ़ंक्शन को ढूंढने का मुख्य कारण यह है कि यदि बारकोड परिवर्तित हो जाता है तो मेटा-डेटा खो जाता है string और वापस परिवर्तित कर दिया।

string केवल प्रतिनिधित्व करता है 4 तथा 2, और [प्रारंभ कोड सी] और [एफएनसी 1] खो गए हैं।

क्या इसके लिए कोई काम है? आप मान सकते हैं कि बारकोड प्रारूप ज्ञात है।

मैं ZXing.NET का उपयोग कर रहा हूं, लेकिन मुझे लगता है कि फ़ंक्शंस विभिन्न प्लेटफ़ॉर्म पर समान हैं।

उत्तर:

जवाब के लिए 0 № 1

यह एक एनकोड अगर बारकोड प्रकार पर निर्भर करता हैएक बाइट सरणी पैरामीटर के साथ विधि उपलब्ध है। एज़्टेक-बारकोड के लिए आप कक्षा com.google.zxing.aztec.encoder.Encoder वर्ग का उपयोग कर सकते हैं जो विधि प्रदान करता है:

public static AztecCode encode(byte[] data)

उदाहरण के लिए क्यूआर-कोड का एन्कोडर वर्ग एक बाइट [] के साथ एक एन्कोड विधि प्रदान नहीं करता है।


जवाब के लिए 0 № 2

नहीं, बारकोडवाइटर नहीं है जो बाइट सरणी स्वीकार करता है। लेकिन आप एक विकल्प निर्धारित कर सकते हैं जो जीएस 1 सिम्बोलॉजी का अर्थ है।

var reader = new BarcodeReader { Options = new DecodingOptions { AssumeGS1 = true } };

बारकोड रीडर अब एफएनसी 1 को परिवर्तित कर देगापरिणामस्वरूप एक स्ट्रिंग प्रतिनिधित्व के लिए कोडवार्ड, आपके मामले में "] सी 142"। एफएनसी 1 प्रतिनिधित्व "] सी 1" बहुत सहज नहीं है लेकिन यह कोड 128 5.4.6.4 के लिए जीएस 1 स्पेक में परिभाषित किया गया है। प्रत्येक निम्नलिखित एफएनसी 1 कोडवार्ड को समूह विभाजक चरित्र (जीएस / 0x1D / (char) 2 9) में अनुवादित किया गया है।

दूसरी तरफ बारकोड लेखक केवल उपयोग करता हैसमूह विभाजक चरित्र। इसका मतलब है कि यदि आप परिणाम स्ट्रिंग से एक ही बारकोड उत्पन्न करना चाहते हैं तो आपको "(सी) 2" के साथ अग्रणी "] सी 1" को प्रतिस्थापित करना होगा।