مولد رموز QR بلغة Java: مكتبة ZXing (Zebra Crossing)

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

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

ابدأ الدورة

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

\n\n

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

\n\n

في هذه المقالة، سنشرح بالتفصيل كيفية إضافة ZXing إلى مشروعك، وإنشاء رمز QR بسيط، وضبط مظهره، وحفظه في ملف. ستكون المادة مفيدة لكل من المبتدئين والمطورين ذوي الخبرة الذين يرغبون في إضافة وظيفة توليد رموز QR إلى تطبيقات Java الخاصة بهم.

\n\n

ما هي ZXing؟

\n\n

ZXing (تُنطق "zebra crossing") هي مكتبة مفتوحة المصدر لمعالجة الرموز الشريطية أحادية وثنائية الأبعاد. وهي مكتوبة بلغة Java وتدعم العديد من التنسيقات: رمز QR، Data Matrix، Aztec، PDF417 وغيرها. الإمكانيات الرئيسية:

\n\n
    \n
  • توليد (إنشاء) رموز QR من النصوص، عناوين URL، جهات الاتصال، إلخ.
  • \n
  • قراءة (فك تشفير) رموز QR من الصور.
  • \n
  • ضبط اللون والحجم ومستوى تصحيح الأخطاء.
  • \n
  • الإخراج بتنسيقات رسومية مختلفة (PNG, JPEG, SVG).
  • \n
  • دعم Java SE و Android بالإضافة إلى لغات JVM الأخرى (Kotlin, Scala).
  • \n
\n\n

المكتبة مدعومة بنشاط من قبل المجتمع وتُستخدم في آلاف المشاريع حول العالم.

\n\n

إضافة ZXing إلى المشروع

\n\n

أسهل طريقة لإضافة ZXing إلى مشروعك هي استخدام نظام البناء Maven أو Gradle. إذا كنت تستخدم Maven، أضف التبعية التالية إلى ملف pom.xml:

\n\n
<dependency>\n    <groupId>com.google.zxing</groupId>\n    <artifactId>core</artifactId>\n    <version>3.5.3</version>\n</dependency>\n<dependency>\n    <groupId>com.google.zxing</groupId>\n    <artifactId>javase</artifactId>\n    <version>3.5.3</version>\n</dependency>\n
\n\n

بالنسبة لـ Gradle (build.gradle):

\n\n
implementation 'com.google.zxing:core:3.5.3'\nimplementation 'com.google.zxing:javase:3.5.3'\n
\n\n

تحتوي الوحدة core على الفئات الأساسية للعمل مع الرموز، بينما تحتوي javase على أدوات مساعدة لـ Java SE (مثل العمل مع الصور).

\n\n

إنشاء رمز QR بسيط

\n\n

لنلقِ نظرة على مثال أساسي: توليد رمز QR يحتوي على النص "Hello, PythonLib!".

\n\n
import com.google.zxing.BarcodeFormat;\nimport com.google.zxing.WriterException;\nimport com.google.zxing.common.BitMatrix;\nimport com.google.zxing.qrcode.QRCodeWriter;\n\nimport javax.imageio.ImageIO;\nimport java.awt.image.BufferedImage;\nimport java.io.File;\nimport java.io.IOException;\n\npublic class QRCodeGenerator {\n    public static void main(String[] args) {\n        String text = "Hello, PythonLib!";\n        int width = 300;\n        int height = 300;\n\n        QRCodeWriter qrCodeWriter = new QRCodeWriter();\n        try {\n            BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);\n\n            BufferedImage qrImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);\n            for (int x = 0; x < width; x++) {\n                for (int y = 0; y < height; y++) {\n                    qrImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);\n                }\n            }\n\n            File outputFile = new File("qrcode.png");\n            ImageIO.write(qrImage, "png", outputFile);\n            System.out.println("تم حفظ رمز QR في الملف: " + outputFile.getAbsolutePath());\n\n        } catch (WriterException | IOException e) {\n            e.printStackTrace();\n        }\n    }\n}\n
\n\n

يقوم هذا الكود بإنشاء رمز QR أبيض وأسود بحجم 300×300 بكسل وحفظه في ملف qrcode.png.

\n\n

إع

توصيات