مولد رموز QR بلغة C# (.NET) باستخدام QRCoder

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

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

ابدأ الدورة

مولد رموز QR بلغة C# (.NET) باستخدام مكتبة QRCoder



أصبحت رموز QR جزءًا لا يتجزأ من الويب الحديث وتطبيقات الهواتف المحمولة. تُستخدم لنقل الروابط وبيانات الاتصال وكلمات مرور Wi-Fi وتفاصيل الدفع وغيرها بسرعة. في نظام C# (.NET)، تُعد مكتبة QRCoder واحدة من أشهر وأسهل المكتبات استخدامًا لإنشاء رموز QR. في هذه المقالة، سنشرح بالتفصيل كيفية تثبيت المكتبة، وإنشاء رمز QR بسيط ومعقد، وحفظه بتنسيقات مختلفة (PNG, SVG).



ما هي مكتبة QRCoder؟



QRCoder هي مكتبة خفيفة الوزن وعالية الأداء ومفتوحة المصدر لـ .NET (تدعم .NET Framework 4.6+ و .NET Core/.NET 5+). لا تتطلب تبعيات خارجية باستثناء مكتبة System.Drawing القياسية للصور النقطية. الإمكانيات الرئيسية:

  • إنشاء رموز QR من النصوص، عناوين URL، جهات الاتصال (vCard)، إعدادات Wi-Fi، رسائل SMS، البريد الإلكتروني، وتنسيقات أخرى.
  • ضبط مستوى تصحيح الأخطاء (L, M, Q, H).
  • اختيار إصدار رمز QR (حجم المصفوفة).
  • التصدير إلى PNG, BMP, SVG, XAML, EPS, PostScript و HTML.
  • دعم الألوان، الخلفية، الشفافية، والشعارات المخصصة.


التثبيت في مشروع C#



يتم تثبيت مكتبة QRCoder عبر NuGet Package Manager. افتح وحدة تحكم مدير الحزم أو استخدم .NET CLI:



dotnet add package QRCoder


أو عبر Package Manager Console:



Install-Package QRCoder


مثال أساسي — إنشاء رمز QR بسيط



لننشئ تطبيق وحدة تحكم يقوم بإنشاء رمز QR للنص "https://pythonlib.ru" ويحفظه في ملف PNG.



using QRCoder;using System.Drawing;

string url = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);

// إنشاء الصورة (بكسل)Bitmap qrCodeImage = qrCode.GetGraphic(20);

// حفظ في ملفqrCodeImage.Save("qrcode.png", System.Drawing.Imaging.ImageFormat.Png);

Console.WriteLine("تم إنشاء رمز QR: qrcode.png");


في هذا المثال:

  • ECCLevel.Q — مستوى تصحيح الأخطاء (يمكن تلف 25% من البيانات).
  • GetGraphic(20) — حجم الوحدة الواحدة (المربع) بالبكسل.
  • النتيجة — صورة PNG بالأبيض والأسود.


تخصيص المظهر — اللون، الشعار، SVG



تتيح QRCoder تخصيص مظهر رمز QR بمرونة. لنلقِ نظرة على مثال مع خلفية ملونة، وحدات داكنة، وشعار مدمج.



using QRCoder;using System.Drawing;

string data = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);

// إعداد اللونColor darkColor = Color.FromArgb(52, 73, 94); // أزرق داكنColor lightColor = Color.FromArgb(236, 240, 241); // رمادي فاتح

// إنشاء مع شعار (يجب أن يكون الشعار في المنتصف)Bitmap logo = new Bitmap("logo.png");Bitmap qrCodeImage = qrCode.GetGraphic(20, darkColor, lightColor, logo);

qrCodeImage.Save("qrcode_color.png", System.Drawing.Imaging.ImageFormat.Png);Console.WriteLine("تم حفظ رمز QR الملون مع الشعار.");


ملاحظة: للعمل بشكل صحيح مع الشعار، يُوصى باستخدام مستوى تصحيح الأخطاء ECCLevel.Q أو ECCLevel.H، لأن الشعار يغطي جزءًا من البيانات.



التصدير إلى SVG (تنسيق متجه)



إذا كنت بحاجة إلى رمز QR قابل للتوسع (مثلًا للطباعة)، استخدم عارض SVG. للقيام بذلك، قم بتثبيت الحزمة الإضافية QRCoder.Svg:



                    

توصيات