توليد رموز QR بلغة Java: مكتبة ZXing (دليل مفصل)

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

توليد رموز QR بلغة Java باستخدام ZXing

أصبحت رموز QR جزءًا لا يتجزأ من الويب الحديث وتطبيقات الهواتف المحمولة. تُستخدم لنقل الروابط وبيانات الاتصال والنصوص والمعلومات الأخرى بسرعة. في Java، واحدة من أشهر وأكثر المكتبات استقرارًا للعمل مع رموز QR هي ZXing («Zebra Crossing»). في هذه المقالة، سنشرح كيفية إضافة ZXing إلى المشروع، وتوليد رمز QR، وحفظه في ملف.



ما هي ZXing؟

ZXing (Zebra Crossing) هي مكتبة مفتوحة المصدر لمعالجة الباركود أحادي وثنائي الأبعاد، مكتوبة بلغة Java. تدعم قراءة وكتابة رموز QR وData Matrix وPDF417 والعديد من التنسيقات الأخرى. المكتبة مدعومة بنشاط من قبل المجتمع وتُستخدم في آلاف المشاريع.



إضافة المكتبة

للعمل مع ZXing في مشروع Java (مثل Maven أو Gradle)، يجب إضافة تبعيتين رئيسيتين:

  • core — يحتوي على الفئات الأساسية للعمل مع الرموز.
  • javase — يحتوي على فئات لتوليد الصور (PNG, JPEG) والعمل مع AWT.


مثال لـ 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'


مثال أساسي: توليد رمز QR

لننشئ دالة بسيطة تأخذ نصًا ومسار ملف، ثم تولد رمز QR بحجم 300×300 بكسل.



import com.google.zxing.BarcodeFormat;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.QRCodeWriter;

import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.Path;

public class QRCodeGenerator {

public static void generateQRCode(String text, String filePath) throws WriterException, IOException { QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, 300, 300);

Path path = FileSystems.getDefault().getPath(filePath); MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); }

public static void main(String[] args) { try { generateQRCode("https://pythonlib.ru", "qrcode.png"); System.out.println("تم إنشاء رمز QR بنجاح!"); } catch (WriterException | IOException e) { System.err.println("خطأ في توليد رمز QR: " + e.getMessage()); } }}


بعد التشغيل، سيظهر ملف qrcode.png في جذر المشروع يحتوي على رمز QR مع رابط https://pythonlib.ru.



تخصيص اللون والحجم

افتراضيًا، يتم توليد رمز QR باللونين الأبيض والأسود. يمكنك تغيير لون المقدمة والخلفية باستخدام MatrixToImageConfig:



import com.google.zxing.client.j2se.MatrixToImageConfig;

public static void generateColoredQR(String text, String filePath) throws WriterException, IOException { QRCodeWriter writer = new QRCodeWriter(); BitMatrix matrix = writer.encode(text, BarcodeFormat.QR_CODE, 400, 400);

// لون المقدمة (أزرق)، لون الخلفية (أصفر) int foregroundColor = 0xFF3366FF; // ARGB int backgroundColor = 0xFFFFFF00; MatrixToImageConfig config = new MatrixToImageConfig(foregroundColor, backgroundColor);

Path path = FileSystems.getDefault().get

توصيات