```html إخلاء مسؤولية كامل: نحن فريق علاقات المطورين في Iron Software، الشركة وراء IronQR، وهي إحدى المكتبات المستخدمة في هذه المقارنة. ومع ذلك، نعتقد أن التقييمات الصادقة تخدم الجميع بشكل أفضل من الدعاية التسويقية. سنوضح منهجيتنا، ونعترف بتحيزاتنا، ونترك التعليمات البرمجية تتحدث عن نفسها. قمنا بتشغيل كل مكتبة رمز QR مكتوبة بلغة C# بمعايير تقييم متطابقة: إنشاء QR بسيط، وقراءة QR من الصور، وعمق التخصيص، ودعم عبر الأنظمة الأساسية، وتكلفة الترخيص. فيما يلي النتيجة، وهي مقارنة لـ 11 مكتبة رمز QR جديرة بالملاحظة في نظام .NET البيئي، مصممة لمساعدتك في اختيار المكتبة المناسبة لمشروعك من المحاولة الأولى. إليك كيف تبدو ثلاثة أسطر من إنشاء QR باستخدام في Visual Studio، وهي إحدى المكتبات التي سنتناولها: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); مثال على مخرج رمز QR الخاص بـ IronQR هذه البساطة هي الحد الأدنى المطلوب. السؤال الحقيقي هو ما يحدث عندما تحتاج إلى رمز QR تالف من ماسح ضوئي في المستودع، أو تضمين شعار علامة تجارية، أو استهداف حاويات Linux، أو معالجة آلاف الرموز في مهمة دفعات. هنا تختلف المكتبات، وهنا تكتسب هذه المقارنة قيمتها. قراءة ملخص سريع: جدول المقارنة الرئيسي قبل أن نتعمق، إليك الصورة الكاملة. يلتقط هذا الجدول الأبعاد الأكثر أهمية عند اختيار مكتبة QR لمشروع .NET. المكتبة إنشاء قراءة شعار/تنسيق Micro QR عبر الأنظمة الأساسية ترخيص تنزيلات NuGet IronQR ✅ ✅ مدعوم بالتعلم الآلي ✅ كامل ✅ + RMQR ✅ ويندوز/ماك/لينكس/موبايل تجاري (749 دولار+) ~ 56 ألف QRCoder ✅ ❌ ✅ متوسط ✅ ⚠️ جزئي (System.Drawing) MIT (مجاني) ~ 68 مليون ZXing.Net ✅ ✅ ❌ بسيط ❌ ⚠️ عبر الروابط Apache 2.0 (مجاني) ~ 32 مليون Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (مجاني) ~ 4.1 مليون SkiaSharp.QrCode ✅ ❌ ✅ أشكال مخصصة ❌ ✅ MIT (مجاني) ~ 1.2 مليون Aspose.BarCode ✅ ✅ ✅ ✅ ✅ تجاري (999 دولار+) ~ 5.4 مليون Syncfusion Barcode ✅ ❌ ✅ متوسط ❌ ✅ (عنصر تحكم واجهة المستخدم) تجاري (مجتمع مجاني) ~ 2 مليون+ Spire.Barcode ✅ ✅ ✅ تضمين الشعار ❌ ⚠️ (System.Drawing) تجاري (599 دولار+) ~ 450 ألف IronBarcode ✅ ✅ ✅ ✅ Micro QR ✅ ويندوز/ماك/لينكس تجاري (749 دولار+) ~ 1.2 مليون Dynamsoft Barcode Reader ❌ ✅ عالي الأداء غير منطبق ✅ ✅ تجاري (1,249 دولار+/سنة) ~ 250 ألف BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (مجاني) ~ 4.5 مليون الجدول 1: مقارنة رئيسية لـ 11 مكتبة QR لـ .NET عبر معايير الاختيار الرئيسية. أعداد التنزيلات تقريبية اعتبارًا من أوائل عام 2026. سيقوم باقي هذا المقال بتفصيل كل صف، مع تعليمات برمجية، ومقايضات، وتقييمات صادقة. كيف قمنا بتقييم هذه المكتبات؟ قمنا بتقييم كل مكتبة مقابل سبعة معايير، تم ترجيحها حسب عدد مرات اتخاذ قرارات الاختيار الواقعية: — هل يمكنها إنشاء رموز QR من سلاسل، وعناوين URL، وبيانات منظمة (vCards، وبيانات اعتماد Wi-Fi)؟ إنشاء QR — هل يمكنها فك تشفير رموز QR من الصور، أو عمليات المسح، أو ملفات PDF؟ كيف تتعامل مع الرموز التالفة أو المدورة؟ قراءة QR — تضمين الشعار، والتحكم في الألوان، وتنسيق وحدات الأشكال، وتكوين تصحيح الأخطاء التخصيص — QR قياسي، Micro QR، RMQR (Micro QR المستطيل) دعم تنسيق QR — هل تعمل بسلاسة على Windows و Linux و macOS وداخل حاويات Docker بدون تعديلات System.Drawing؟ عبر الأنظمة الأساسية — المصدر المفتوح مقابل التجاري، التسعير لكل مطور، خصومات الحزمة الترخيص والتكلفة — جودة مرجع واجهة برمجة التطبيقات، وتوفر الدروس التعليمية، وحجم المجتمع، والصيانة النشطة الوثائق والنظام البيئي تستهدف جميع الأمثلة البرمجية .NET 8 (LTS) وتستخدم عبارات المستوى الأعلى. حيثما يقدم .NET 10 تحسينات ذات صلة، سنشير إليها. أي مكتبة QR يجب أن تختار؟ إطار عمل لاتخاذ القرار تجاوز ملفات تعريف المكتبات الـ 11 أدناه إذا كنت تعرف بالفعل قيودك. إليك المسار السريع: → أو . كلاهما مرخص بموجب MIT. QRCoder لديها المزيد من العارضات ومساعدات حمولة البيانات؛ Net.Codecrete أخف وتتجنب System.Drawing تمامًا. "أحتاج إلى إنشاء رموز QR مجانًا وبدون أي تبعيات." QRCoder Net.Codecrete.QrCodeGenerator → (قراءة مدعومة بالتعلم الآلي، أفضل دقة على الرموز التالفة)، (مجاني، مثبت، أوسع دعم للتنسيقات)، أو (حزمة للمؤسسات، مكلفة). "أحتاج إلى إنشاء وقراءة رموز QR." IronQR ZXing.Net Aspose.BarCode → ، ، أو . الثلاثة تتجنب تبعية System.Drawing التي تكسر عمليات النشر عبر الأنظمة الأساسية. "أنا أقوم بالنشر على Linux/Docker ولا يمكنني استخدام System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → تتصدر مقاييس الأداء الخام للإنشاء. بالنسبة لأداء القراءة، فإن مصمم خصيصًا للمسح عالي الإنتاجية. "الأداء والبصمة الذاكرية أمران حاسمان." SkiaSharp.QrCode Dynamsoft Barcode Reader → استخدم ما لديك. نادرًا ما يكون إضافة مكتبة QR لمورد آخر عندما تتضمن حزمتك بالفعل واحدة منطقية من منظور الترخيص أو الصيانة. "أنا أستخدم بالفعل حزمة Aspose/Syncfusion/Iron Software." → لدى أدلة تكامل صريحة لـ MAUI و Blazor. قام Microsoft MVP Jeff Fritz باستخدام IronQR مع Blazor، وهو مثال واقعي لهذا النمط بالضبط. "أقوم ببناء تطبيق Blazor/MAUI للجوال مع مسح QR." IronQR ببناء تطبيق بطاقة عمل رقمية يعتمد على QR مقارنة مكتبات QR لـ .NET الـ 11 1. IronQR — قراءة وإنشاء QR مدعومة بالتعلم الآلي مع دعم عبر الأنظمة الأساسية IronQR هي مكتبة Iron Software المخصصة لرموز QR، منفصلة عن منتجها الأوسع IronBarcode. ميزتها البارزة هي نموذج التعلم الآلي (قائم على ) الذي يكتشف ويقرأ رموز QR من الصور غير المثالية، أو المدورة، أو المغطاة جزئيًا، أو المصورة بزوايا غريبة، غالبًا في بضعة أسطر من التعليمات البرمجية. ONNX إنها قادرة أيضًا على إنشاء كائنات QR بسهولة، مع دعم لتنسيق رموز QR بالصور، وإضافة ألوان مخصصة، وحفظ صورة QR الخاصة بك بتنسيقات إخراج مختلفة. الإنشاء: using IronQr; using IronSoftware.Drawing; // إنشاء رمز QR منسق مع شعار var options = new QrOptions(QrErrorCorrectionLevel.High, 20); QrCode qr = QrWriter.Write("https://example.com", options); var style = new QrStyleOptions { Dimensions = 300, Margins = 10, Color = new Color("#2E75B6"), Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("logo.png"), Width = 80, Height = 80 } }; AnyBitmap styledQr = qr.Save(style); styledQr.SaveAs("branded-qr.png"); مخرج QR الذي تم إنشاؤه بواسطة IronQR القراءة: using IronQr; using IronSoftware.Drawing; var reader = new QrReader(); var input = new QrImageInput(AnyBitmap.FromFile("scanned-qr.jpg")); IEnumerable<QrResult> results = reader.Read(input); foreach (var result in results) Console.WriteLine($"Value: {result.Value}"); مخرج قراءة QR الخاص بـ IronQR نموذج التعلم الآلي هو ما يميز IronQR عن كل مكتبة أخرى في هذه القائمة. في اختباراتنا، نجحت في فك تشفير رموز QR من صور بطاقات المؤتمرات ولقطات شاشة الهاتف بزوايا، حيث أعادت ZXing.Net وقارئات الصور الأساسية لا شيء. المقايضة هي حجم الحزمة، نموذج ONNX يضيف وزنًا. إذا كنت لا تحتاج إلى القراءة، فإن IronQR.Slim يأتي بدون نموذج التعلم الآلي وهو أخف بكثير. نقاط القوة: القراءة المدعومة بالتعلم الآلي تتعامل مع رموز QR التالفة والمدورة والمغطاة جزئيًا وتعطي الأولوية للدقة يدعم تنسيقات QR Code و Micro QR و RMQR (Micro QR المستطيل) واجهة برمجة تطبيقات تنسيق كاملة: ألوان، شعارات، وحدات مستديرة، هوامش عبر الأنظمة الأساسية: Windows و macOS و Linux و iOS و Android و Docker و Azure و AWS دعم القراءة غير المتزامنة (ReadAsync) لأعباء عمل الخادم الحفظ بتنسيقات متعددة مثل صور PNG و JPG و TIFF متعددة الصفحات والمزيد تجعل واجهة برمجة التطبيقات سهلة الاستخدام سهلة الاستخدام القيود: مطلوب ترخيص تجاري (749 دولار+ لكل مطور للنشر) الحزمة الكاملة أثقل من البدائل مفتوحة المصدر بسبب نموذج التعلم الآلي أقل من الخيارات مفتوحة المصدر الناضجة، منتج أحدث (تم إطلاقه ~ 2023) عدد تنزيلات NuGet قد لا تحتاج مشاريع الإنشاء فقط إلى عبء نموذج التعلم الآلي المشاريع التي تحتاج إلى الإنشاء والقراءة، خاصة عندما تكون ظروف المسح غير مثالية (تطبيقات الهاتف المحمول، مسح المستودعات، سيناريوهات المؤتمرات/الفعاليات). توضح إنشاء QR في الوقت الفعلي باستخدام Blazor والعلامة التجارية المخصصة بواسطة IronQR. الأفضل لـ: دراسة حالة بطاقة عمل QR الخاصة بـ Jeff Fritz 2. — مولد QR الأكثر شيوعًا مفتوح المصدر QRCoder تعد مكتبة QRCoder الحزمة الأكثر تنزيلاً لرموز QR على NuGet، مع . تم إنشاؤها في الأصل بواسطة Raffael Herrmann في عام 2013 و ، وهي تنفيذ خالص بلغة C# يركز حصريًا على رموز QR (وليس القراءة). أكثر من 68 مليون تنزيل تتم صيانتها الآن بواسطة Shane32 إنشاء using QRCoder; // إنشاء رمز QR وحفظه كبايتات PNG using var qrGenerator = new QRCodeGenerator(); using var qrCodeData = qrGenerator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.H); using var pngQrCode = new PngByteQRCode(qrCodeData); byte[] qrCodeImage = pngQrCode.GetGraphic(20); File.WriteAllBytes("qrcoder-output.png", qrCodeImage); صورة مخرج QRCoder توفر QRCoder العديد من العارضات: PngByteQRCode (عبر الأنظمة الأساسية، لا توجد تبعية System.Drawing)، QRCode (تعتمد على System.Drawing، Windows فقط)، SvgQRCode، AsciiQRCode، والمزيد. كما أنها تتضمن مولدات حمولة بيانات للبيانات المنظمة مثل بيانات اعتماد Wi-Fi، و vCards، والإشارات المرجعية، مما يوفر عليك تنسيق هذه السلاسل يدويًا. نقاط القوة: ترخيص MIT، مجاني تمامًا للاستخدام التجاري أكثر من 68 مليون تنزيل على NuGet، اعتماد واسع النطاق من المجتمع ومعرفة مثبتة خيارات عارض متعددة بما في ذلك PngByteQRCode التي تتجنب System.Drawing مولدات حمولة بيانات مدمجة (Wi-Fi، vCard، الموقع الجغرافي، أحداث التقويم) دعم Micro QR code لا توجد تبعيات على أهداف .NET Standard القيود: ، لا يمكن قراءة أو فك تشفير ملفات صور QR الإنشاء فقط تعتمد بعض العارضات (مثل QRCode) على System.Drawing.Common، وهو مخصص لنظام Windows فقط منذ .NET 6 لا يوجد تضمين شعار مدمج (ستقوم بتركيب الصورة بنفسك) لا يوجد تنسيق متقدم (أشكال وحدات، تدرجات) المشاريع التي تحتاج فقط إلى إنشاء QR، خاصة عندما تكون الميزانية صفرًا. إذا كنت بحاجة إلى إنشاء رموز QR لـ Wi-Fi أو vCards ولا تحتاج إلى قراءة الرموز على الإطلاق، فإن QRCoder هو الخيار العملي الافتراضي لمعظم مطوري .NET. الأفضل لـ: 3. — سكين الجيش السويسري لمكتبات الباركود ZXing.Net ("Zebra Crossing") هو للمكتبة الأصلية ZXing بلغة Java. إنها مكتبة باركود للأغراض العامة تدعم أكثر من 15 تنسيقًا، QR Code، Data Matrix، Aztec، PDF 417، UPC، EAN، Code 128، والمزيد. دعم QR هو مجموعة فرعية من قدراتها الأوسع. ZXing.Net منفذ .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // إنشاء رمز QR var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // القراءة من رمز QR تتطلب حزمة ربط (مثل ZXing.Net.Bindings.SkiaSharp) مخرج ZXing.Net تتطلب ZXing.Net حزم ربط خاصة بالمنصة للعرض والقراءة. توفر الحزمة الأساسية منطق الترميز/فك الترميز؛ تضيف ZXing.Net.Bindings.Windows.Compatibility، و ZXing.Net.Bindings.SkiaSharp، أو ZXing.Net.Bindings.ImageSharp اعتمادًا على منصتك المستهدفة. هذا النهج المعياري مرن ولكنه يضيف تعقيدًا في التكامل. نقاط القوة: ترخيص Apache 2.0، مجاني للاستخدام التجاري الإنشاء والقراءة في مكتبة واحدة يدعم أكثر من 15 تنسيق باركود بخلاف رموز QR على NuGet، مثبت، معرفة مجتمعية واسعة أكثر من 32 مليون تنزيل تتوفر روابط لـ SkiaSharp و ImageSharp و OpenCV والمزيد القيود: ميزات QR المحددة أساسية، لا يوجد تضمين شعار، لا يوجد تنسيق متقدم دقة القراءة على رموز QR التالفة/المدورة متوسطة مقارنة بالحلول المدعومة بالتعلم الآلي تضيف حزم الربط تعقيدًا في إدارة التبعيات يظهر تصميم واجهة برمجة التطبيقات قدمه، وأقل طلاقة من مكتبات .NET الحديثة تباطأت وتيرة الصيانة النشطة (يتم صيانتها بواسطة المجتمع) المشاريع التي تحتاج إلى دعم باركود QR والباركود التقليدي (التجزئة، الخدمات اللوجستية) وتريد خيارًا مجانيًا ومثبتًا. إذا كانت أولويتك هي ميزات QR المحددة مثل التنسيق أو القراءة المدعومة بالتعلم الآلي بدلاً من تغطية تنسيقات الباركود الواسعة، فستخدمك مكتبة QR مخصصة بشكل أفضل. الأفضل لـ: 4. Net.Codecrete.QrCodeGenerator — خفيف الوزن ومركز على المعايير Net.Codecrete.QrCodeGenerator هي مكتبة إنشاء QR نظيفة وبسيطة من Manuel Bleichenbacher. إنها ، وتركز على الدقة والامتثال للمعايير ( ). ترجمة .NET لمولد QR Java الخاص بـ Project Nayuki ISO/IEC 18004 using Net.Codecrete.QrCodeGenerator; var qr = QrCode.EncodeText("https://example.com", QrCode.Ecc.Medium); string svg = qr.ToSvgString(4); File.WriteAllText("output.svg", svg); مثال على المخرج باستخدام Net.Codecrete.QrCodeGenerator مع ، فهي معتمدة جيدًا لمكتبة مركزة. جودتها البارزة هي عدم وجود تبعيات على System.Drawing — فهي تنشئ SVG، وبيانات مسار XAML، و PNG، و BMP أصليًا. هذا يجعلها خيارًا ممتازًا لمشاريع .NET عبر الأنظمة الأساسية وخدمات ASP.NET Core التي تعمل في Docker. حوالي 4.1 مليون تنزيل على NuGet نقاط القوة: ترخيص MIT، مجاني تمامًا لا توجد تبعية System.Drawing، تعمل حقًا عبر الأنظمة الأساسية بصمة صغيرة، إنشاء سريع إخراج SVG و XAML مدمج (مفيد لسيناريوهات WPF و WinUI والويب) تنفيذ صحيح لجميع إصدارات QR الـ 40 وجميع مستويات تصحيح الأخطاء الـ 4 مشاريع أمثلة واسعة (WinForms، WPF، ASP.NET Core، SkiaSharp، ImageSharp) القيود: ، لا توجد قدرة على قراءة QR الإنشاء فقط لا يوجد تضمين شعار أو ميزات تنسيق متقدمة تخصيص محدود مقارنة بمولدات حمولة QRCoder محتوى مجتمعي ودروس تعليمية أقل مقارنة بـ QRCoder أو ZXing.Net المطورين الذين يحتاجون إلى مولد QR صغير وصحيح وعبر الأنظمة الأساسية مع إخراج SVG ودون أعباء System.Drawing. إذا كان هدف النشر الخاص بك هو Linux أو Docker وتحتاج فقط إلى الإنشاء، فإن هذه المكتبة تستحق اعتبارًا جادًا. الأفضل لـ: 5. SkiaSharp.QrCode — إنشاء عالي الأداء عبر الأنظمة الأساسية SkiaSharp.QrCode بواسطة هي مكتبة إنشاء QR تركز على الأداء مبنية على SkiaSharp. تم إنشاؤها خصيصًا لتجنب قيود GDI+ الخاصة بـ System.Drawing مع تقديم أداء بمستوى أصلي من خلال التسريع المعتمد على الأجهزة لـ SkiaSharp. guitarrapc using SkiaSharp.QrCode.Image; // سطر واحد: إنشاء وحفظ QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // أو مع إعدادات مخصصة var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); مخرج SkiaSharp.QrCode سطر واحد تُظهر نتائج قياس الأداء من مستودع المشروع أن SkiaSharp.QrCode يتفوق على QRCoder ومكتبات QR الأخرى لـ .NET في كل من السرعة وتخصيص الذاكرة لمهام الإنشاء. يحقق عرضًا بدون نسخ مباشر إلى لوحة SkiaSharp، متجنبًا تخصيص المخزن المؤقت الوسيط. نقاط القوة: ترخيص MIT، مجاني للاستخدام التجاري أفضل أداء إنشاء في فئته (تم قياسه) أقل تخصيص للذاكرة، ضغط GC منخفض لسيناريوهات الإنتاجية العالية جاهز لـ NativeAOT (دعم تجميع .NET Native AOT) أشكال وحدات مخصصة (دوائر، مستطيلات مستديرة) لرموز QR المنسقة يعمل على Windows و Linux و macOS و iOS و Android و WebAssembly القيود: ، لا يوجد قراءة QR الإنشاء فقط يتطلب تبعيات أصلية لـ SkiaSharp (حزم NuGet خاصة بالمنصة) مجتمع أصغر من QRCoder أو ZXing.Net لا توجد مولدات حمولة بيانات (Wi-Fi، vCard)، تقوم بتنسيق هذه السلاسل بنفسك UTF-8 فقط، لا يوجد ترميز ISO-8859-2 أو Shift JIS تطبيقات الخادم ذات الإنتاجية العالية التي تنشئ رموز QR على نطاق واسع (على سبيل المثال، أنظمة التذاكر، إنشاء تسميات دفعات) حيث تكون كفاءة الأداء والذاكرة هي الأهم. مثالي أيضًا إذا كنت تستخدم SkiaSharp بالفعل في مشروعك. الأفضل لـ: