قراءة الباركود من الصورة في C#

هل تبحث عن طريقة لقراءة الرموز الشريطية أو رموز QR من الصور برمجيًا؟ إذا كنت مطورًا وتحتاج إلى إنشاء تطبيق قارئ الباركود الخاص بك؟ لقد جئت إلى المكان المناسب. تعد الرموز الشريطية ضرورية للتتبع الدقيق للمخزون وتسليم المنتجات من التصنيع إلى نقطة البيع. يمكننا بسهولة اكتشاف أنواع مختلفة من الرموز الشريطية ورموز QR والتعرف عليها وقراءتها في تطبيقات .NET. في هذه المقالة ، سنوضح لك كيفية قراءة الباركود من صورة في #C باتباع بضع خطوات بسيطة. يمكنك استخدام هذه المقالة كدليل تفصيلي خطوة بخطوة لتطوير قارئ الباركود أو تطبيقات الماسح الضوئي.

أولاً ، سنلقي نظرة على C# Barcode Reader API لقراءة الرموز الشريطية المتوفرة في صورة الإدخال. بعد ذلك ، سنتعرف على خطوات كيفية اكتشاف بيانات الباركود والتعرف عليها واستخراجها من الصورة. ستجد خطوات مفصلة ومقتطفات التعليمات البرمجية. أخيرًا ، سنوفر روابط مفيدة لمزيد من التحسينات. اذا هيا بنا نبدأ!

سيتم تناول الموضوعات التالية في هذه المقالة:

  1. C# API لقراءة الرمز الشريطي من الصورة
  2. خطوات قراءة الرمز الشريطي من صورة
  3. قراءة الرمز الشريطي من الصورة النقطية
  4. قراءة الباركود من الصورة باستخدام الدفق
  5. كيفية قراءة الرمز الشريطي من نوع معين
  6. قراءة الرموز الشريطية لأنواع متعددة من صورة
  7. اكتشاف مجموعات الرموز المحددة مسبقًا وقراءتها
  8. كشف وقراءة الرموز الشريطية المتعددة من صورة
  9. الحصول على إحداثيات X و Y للرمز الشريطي
  10. قراءة الرمز الشريطي من منطقة معينة للصورة
  11. قراءة الرمز الشريطي من مناطق متعددة للصورة

C# API لقراءة الباركود من الصورة

لقراءة رمز شريطي من صورة ، سنستخدم Aspose.BarCode for .NET API. تسمح واجهة برمجة التطبيقات (API) بتوليد ومسح وقراءة مجموعة واسعة من رموز الرموز الشريطية. يتيح عرض صور الباركود بتنسيق JPEG و TIFF و PNG و BMP و GIF.

توفر واجهة برمجة التطبيقات فئة BarCodeReader التي تتيح التعرف على أكثر من 60 نوعًا مختلفًا من الرموز الشريطية من صور معينة. تتمثل الخطوة الأولى في اكتشاف الرموز الشريطية في تحديد مصدر الصورة باستخدام الرموز الشريطية. يمكن أن يكون هذا ملفًا أو كائنًا نقطيًا أو تدفقًا. من الضروري بعد ذلك تحديد الرموز المستهدفة ضمن معلمة DecodeType. يمكننا إلقاء نظرة على جميع الأنواع المختلفة من الرموز المدعومة من خلال تحديد DecodeType.AllSupportedTypes. ترجع طريقة ReadBarCodes() لهذه الفئة مصفوفة من الرموز الشريطية التي تم التعرف عليها. تقوم فئة BarCodeResult الخاصة بواجهة برمجة التطبيقات بتخزين بيانات الرمز الشريطي التي تم التعرف عليها مثل نوع الرمز الشريطي ونص الكود والمنطقة والمعلمات الأخرى.

تسمح API أيضًا بتحديد مناطق الصورة التي يجب على قارئ الباركود قراءتها. يمكن تحقيق ذلك باستخدام كائن .NET Rectangle ويسمح بتجنب الحاجة إلى البحث عن الرموز الشريطية في مناطق الصورة التي لا تحتوي على رموز شريطية افتراضيًا.

يرجى إما تنزيل DLL الخاص بواجهة برمجة التطبيقات أو تثبيته باستخدام NuGet.

PM> Install-Package Aspose.BarCode 

قراءة الباركود من صورة باستخدام #C

يمكننا بسهولة قراءة الباركود من صورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة BarCodeReader.
  2. استدعاء الأسلوب ()readBarCodes والحصول على نتائج التعرف في كائن فئة BarCodeResult.
  3. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة رمز شريطي من صورة في #C.

// يوضح مثال الكود هذا كيفية قراءة الباركود من ملف صورة.
// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// قراءة الباركود وإظهار النتائج
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
قراءة الباركود من صورة.

قراءة الباركود من صورة في #C.

قراءة الباركود من الصورة النقطية في C#

يمكننا بسهولة قراءة الباركود من صورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة الصور النقطية.
  2. بعد ذلك ، قم بإنشاء مثيل لفئة BarCodeReader باستخدام كائن Bitmap.
  3. استدعاء الأسلوب ()ReadBarCodes والحصول على نتائج التعرف في كائن فئة BarCodeResult.
  4. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة رمز شريطي من الصورة النقطية في #C.

// يوضح مثال الكود هذا كيفية قراءة الباركود من الصورة النقطية.
// تحميل الصورة في صورة نقطية
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader(bmp);

// اقرأ جميع الرموز الشريطية في المنطقة المتوفرة
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
قراءة الباركود من الصورة النقطية في C#.

قراءة الباركود من الصورة النقطية في #C.

قراءة الباركود من الصورة باستخدام الدفق في #C

يمكننا أيضًا تحميل صورة الرمز الشريطي باستخدام دفق ملف وقراءة الرمز الشريطي باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة FileStream.
  2. بعد ذلك ، قم بإنشاء مثيل لفئة BarCodeReader مع كائن دفق.
  3. استدعاء الأسلوب ()ReadBarCodes والحصول على نتائج التعرف في كائن فئة BarCodeResult.
  4. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة رمز شريطي من صورة باستخدام Stream in #C.

// يوضح مثال الكود هذا كيفية قراءة الباركود من صورة باستخدام دفق الملف.
// تحميل الصورة
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader(stream);

// اقرأ جميع الرموز الشريطية في المنطقة المتوفرة
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

قراءة الباركود من نوع معين من الصورة في #C

يوصى بتحديد رموز الرموز الشريطية المستهدفة التي سيتم أخذها في الاعتبار من أجل التعرف عليها لتقليل مقدار الوقت المطلوب لإكمال التعرف وتجنب محاولات التعرف على الرموز الشريطية القديمة.

يمكننا تحديد نوع الباركود المستهدف وقراءة الباركود من صورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة BarCodeReader.
  2. بعد ذلك ، قم بتعيين نوع فك شفرة الرمز الشريطي ، مثل Code39Standard.
  3. بعد ذلك ، احصل على نتائج التعرف في كائن فئة BarCodeResult باستخدام طريقة ()ReadBarCodes.
  4. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة رمز شريطي من نوع معين من صورة باستخدام #C.

// يوضح مثال الرمز هذا كيفية قراءة الرمز الشريطي لنوع معين من فك التشفير من صورة.
// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// قراءة الباركود من النوع Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
التعرف على الرمز الشريطي لنوع معين من الصورة

التعرف على الرمز الشريطي لنوع معين من الصورة في C#.

قراءة الباركود لأنواع متعددة من الصورة في #C

يمكننا أيضًا تحديد أنواع متعددة من الرموز الشريطية باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة BarCodeReader.
  2. بعد ذلك ، قم بتعيين أنواع فك تشفير الباركود باستخدام طريقة ()SetBarCodeReadType.
  3. بعد ذلك ، احصل على نتائج التعرف في كائن فئة BarCodeResult باستخدام طريقة ()ReadBarCodes.
  4. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة الرموز الشريطية لأنواع متعددة من صورة باستخدام #C.

// يوضح مثال الكود هذا كيفية قراءة الباركود لأنواع متعددة من فك التشفير من صورة.
// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// قراءة الباركود
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
قراءة الرموز الشريطية لأنواع متعددة من الصورة في C#

قراءة الرموز الشريطية لأنواع متعددة من الصورة في #C

يمكننا أيضًا تحديد أنواع متعددة لفك التشفير في مُنشئ فئة BarCodeReader كما هو موضح أدناه:

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

قراءة مجموعة محددة مسبقًا من أنواع الرموز الشريطية من الصورة في C#

يمكننا قراءة مجموعة محددة مسبقًا من الرموز للتعرف عليها في فئة DecodeTypes. يمكننا تعيين أي من المجموعات المحددة مسبقًا التالية:

  • AllSupportedTypes - جميع أنواع الرموز الشريطية المدعومة
  • Types1D - جميع الرموز 1D المدعومة
  • Types2D - جميع الرموز ثنائية الأبعاد المدعومة
  • الأنواع البريدية - جميع الرموز البريدية المدعومة والمستخدمة بشكل أساسي بواسطة الخدمات البريدية
  • MostCommonTypes - مجموعة من معايير الباركود الأكثر استخدامًا المحددة

يمكننا تحديد مجموعة محددة مسبقًا باتباع الخطوات الواردة أدناه:

  1. أولاً ، أولاً ، قم بتحميل صورة باستخدام فئة BarCodeReader.
  2. بعد ذلك ، قم بتعيين نوع فك شفرة الرمز الشريطي في مُنشئ BarCodeReader أو أسلوب SetBarCodeReadType ، مثل DecodeType.Types2D.
  3. بعد ذلك ، احصل على نتائج التعرف في كائن فئة BarCodeResult باستخدام طريقة ()ReadBarCodes.
  4. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة رمز شريطي باستخدام مجموعة محددة مسبقًا من الرموز في #C.

// يوضح مثال الرمز هذا كيفية قراءة رمز شريطي باستخدام مجموعة محددة مسبقًا من الرموز.
// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// قراءة الباركود وإظهار النتائج
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
قراءة مجموعة محددة مسبقًا من أنواع الرموز الشريطية من الصورة في C#

قراءة مجموعة محددة مسبقًا من أنواع الرموز الشريطية من الصورة في #C

قراءة الرموز الشريطية المتعددة من الصورة في C#

يمكننا أيضًا قراءة جميع الرموز الشريطية المتاحة من صورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة BarCodeReader.
  2. بعد ذلك ، قم بتعيين نوع فك تشفير الباركود على أنه ALLSUPPORTEDTYPES.
  3. بعد ذلك ، احصل على نتائج التعرف في كائن فئة BarCodeResult باستخدام طريقة ()ReadBarCodes.
  4. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة الرموز الشريطية المتعددة من صورة باستخدام #C.

// يوضح مثال الرمز هذا كيفية قراءة الرموز الشريطية المتعددة من صورة ما.
// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// اقرأ جميع أنواع الباركود المتوفرة على الصورة المدخلة
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
قراءة الرموز الشريطية المتعددة من الصورة.

قراءة الرموز الشريطية المتعددة من صورة.

احصل على إحداثيات X و Y للرمز الشريطي باستخدام C#

يمكننا قراءة إحداثيات X و Y للرمز الشريطي المكتشف من صورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة BarCodeReader.
  2. بعد ذلك ، احصل على نتائج التعرف في كائن فئة BarCodeResult باستخدام طريقة ()ReadBarCodes.
  3. بعد ذلك ، قم بتكرار النتائج وتحقق مما إذا كانت المنطقة ليست خالية.
  4. بعد ذلك ، احصل على صفيف النقاط الذي يحيط بمنطقة الباركود باستخدام النقاط.
  5. أخيرًا ، أظهر نقطتي X و Y في الرمز الشريطي.

يوضح نموذج التعليمات البرمجية التالي كيفية الحصول على نقطتي إحداثيات X و Y لرمز شريطي من صورة باستخدام #C.

// يوضح مثال الرمز هذا كيفية قراءة نقطة منطقة X & Y للرموز الشريطية من صورة.
// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// اقرأ الباركود
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // عرض إحداثيات x و y لجميع الرموز الشريطية المكتشفة
        Point[] point = result.Region.Points;
        Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
        Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
        Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
        Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
    }
}
احصل على إحداثيات X و Y للباركود

احصل على إحداثيات X و Y لرمز شريطي من صورة.

قراءة الباركود من منطقة معينة للصورة في C#

يمكننا قراءة الباركود من منطقة معينة أو منطقة من الصورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، اقرأ بيانات المخزن المؤقت لملف صورة باستخدام طريقة الصورة النقطية.
  2. بعد ذلك ، قم بإنشاء مثيل لفئة BarCodeReader. يأخذ صورة ومنطقة مستطيل ونوع فك الشفرة كوسائط.
  3. بعد ذلك ، احصل على نتائج التعرف في كائن فئة BarCodeResult باستخدام طريقة ()ReadBarCodes.
  4. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة رمز شريطي من منطقة معينة من صورة باستخدام #C.

// يوضح مثال الكود هذا كيفية قراءة الباركود من منطقة معينة من الصورة.
// تحميل الصورة
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// إنشاء مثيل لفئة BarCodeReader
// وحدد منطقة للبحث عن الرمز الشريطي
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// اقرأ جميع الرموز الشريطية في المنطقة المتوفرة
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
قراءة الباركود من منطقة معينة للصورة.

اقرأ الرموز الشريطية من منطقة معينة من الصورة في #C.

قراءة الباركود من مناطق متعددة للصورة في C#

يمكننا أيضًا قراءة الباركود من مناطق متعددة من الصورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل صورة باستخدام فئة الصور النقطية.
  2. بعد ذلك ، حدد المستطيلات باستخدام فئة المستطيل.
  3. ثم قم بإنشاء مثيل لفئة BarCodeReader.
  4. في غضون ذلك ، قم باستدعاء SetBarCodeImage() باستخدام كائن صورة ، والمستطيلات كوسيطات.
  5. اختياريًا ، قم بتعيين أنواع قراءة الباركود باستخدام أسلوب SetBarCodeReadType().
  6. بعد ذلك ، احصل على نتائج التعرف في كائن فئة BarCodeResult باستخدام طريقة ()ReadBarCodes.
  7. أخيرًا ، قم بالتمرير خلال النتائج وإظهار نوع الرمز الشريطي ونصه.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة رمز شريطي من مناطق متعددة من الصورة باستخدام #C.

// يوضح مثال الكود هذا كيفية قراءة الباركود من منطقة معينة من الصورة.
// تحميل الصورة في صورة نقطية
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// مستطيل من الباركود ثنائي الأبعاد في الصورة المصدر
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// مستطيل الباركود Code128 في الصورة المصدر
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// تهيئة قارئ الباركود
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// اقرأ جميع الرموز الشريطية في المنطقة المتوفرة
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
قراءة الباركود من مناطق متعددة للصورة.

قراءة الرموز الشريطية من منطقة متعددة للصورة في #C.

احصل على رخصة مجانية

يمكنك الحصول على ترخيص مؤقت مجاني لتجربة المكتبة دون قيود التقييم.

استنتاج

في هذه المقالة ، تعلمنا كيفية:

  • تحميل ملف صورة الباركود ؛
  • قراءة الصور كصورة نقطية أو باستخدام دفق الملفات ؛
  • التعرف على أنواع مختلفة من الرموز الشريطية من صورة ؛
  • قراءة إحداثيات الباركود ؛
  • كشف وقراءة الرموز الشريطية المتعددة من صورة واحدة ؛
  • كشف وقراءة الرموز الشريطية من منطقة معينة من الصورة.

إلى جانب قراءة الباركود من صورة في #C ، يمكنك معرفة المزيد حول Aspose.BarCode لـ .NET API باستخدام التوثيق. في حالة وجود أي غموض ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.

أنظر أيضا