Java में ZXing (Zebra Crossing) से QR कोड जनरेशन
QR कोड आधुनिक वेब और मोबाइल एप्लिकेशन का अहम हिस्सा बन गए हैं। ये लिंक, कॉन्टैक्ट डिटेल्स, टेक्स्ट जानकारी और बहुत कुछ तुरंत शेयर करने में मदद करते हैं। Java की दुनिया में QR कोड के लिए सबसे लोकप्रिय और स्थिर लाइब्रेरी ZXing (Zebra Crossing) है।
इस लेख में हम विस्तार से जानेंगे कि ZXing को अपने प्रोजेक्ट में कैसे जोड़ें, एक साधारण QR कोड कैसे बनाएं, उसका लुक कैसे कस्टमाइज़ करें और फ़ाइल में कैसे सेव करें। यह सामग्री शुरुआती और अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगी जो अपने Java एप्लिकेशन में QR कोड जनरेशन फीचर जोड़ना चाहते हैं।
ZXing क्या है?
ZXing (उच्चारण "ज़ेब्रा क्रॉसिंग") एक open-source लाइब्रेरी है जो एक-आयामी और दो-आयामी बारकोड को प्रोसेस करती है। यह Java में लिखी गई है और कई फॉर्मेट सपोर्ट करती है: QR कोड, Data Matrix, Aztec, PDF417 और अन्य। मुख्य विशेषताएं:
- टेक्स्ट, URL, कॉन्टैक्ट आदि से QR कोड जनरेट करना।
- इमेज से QR कोड पढ़ना (डिकोड करना)।
- रंग, साइज़ और एरर करेक्शन लेवल को कस्टमाइज़ करना।
- विभिन्न ग्राफिकल फॉर्मेट (PNG, JPEG, SVG) में आउटपुट।
- Java SE, Android और अन्य JVM भाषाओं (Kotlin, Scala) के लिए सपोर्ट।
यह लाइब्रेरी कम्युनिटी द्वारा सक्रिय रूप से मेंटेन की जाती है और दुनिया भर के हज़ारों प्रोजेक्ट्स में उपयोग होती है।
प्रोजेक्ट में ZXing जोड़ना
ZXing को अपने प्रोजेक्ट में जोड़ने का सबसे आसान तरीका Maven या Gradle बिल्ड सिस्टम का उपयोग करना है। अगर आप Maven का उपयोग कर रहे हैं, तो pom.xml फ़ाइल में यह डिपेंडेंसी जोड़ें:
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.5.3</version>
</dependency>
Gradle (build.gradle) के लिए:
implementation 'com.google.zxing:core:3.5.3'
implementation 'com.google.zxing:javase:3.5.3'
core मॉड्यूल में कोड के साथ काम करने के लिए मुख्य क्लासेज़ हैं, और javase में Java SE के लिए सहायक उपयोगिताएँ (जैसे इमेज के साथ काम करना) शामिल हैं।
सरल QR कोड बनाना
एक बेसिक उदाहरण देखें: "Hello, PythonLib!" टेक्स्ट वाला QR कोड जनरेट करना।
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class QRCodeGenerator {
public static void main(String[] args) {
String text = "Hello, PythonLib!";
int width = 300;
int height = 300;
QRCodeWriter qrCodeWriter = new QRCodeWriter();
try {
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
BufferedImage qrImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
qrImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
}
}
File outputFile = new File("qrcode.png");
ImageIO.write(qrImage, "png", outputFile);
System.out.println("QR कोड फ़ाइल में सेव हो गया: " + outputFile.getAbsolutePath());
} catch (WriterException | IOException e) {
e.printStackTrace();
}
}
}
यह कोड 300x300 पिक्सल का काला-सफेद QR कोड बनाता है और इसे qrcode.png फ़ाइल में सेव करता है।
QR कोड का लुक कस्टमाइज़ करना
ZXing आपको QR कोड के पैरामीटर को लचीले ढंग से सेट करने की सुविधा देता है।