קרא ברקוד מתמונה ב-C#

האם אתה מחפש דרך לקרוא ברקודים או קודי QR מתמונות באופן תוכנתי? אם אתה מפתח, ואתה צריך ליצור יישום קורא ברקוד משלך? הגעתם למקום הנכון. ברקודים הם חיוניים למעקב מדויק אחר המלאי ואספקת המוצרים מייצור ועד נקודת המכירה. אנו יכולים לזהות, לזהות ולקרוא בקלות סוגים שונים של ברקודים וקודי QR ביישומי NET. במאמר זה נראה לך כיצד לקרוא ברקוד מתמונה ב-C# על ידי ביצוע של מספר שלבים פשוטים. אתה יכול להשתמש במאמר זה כמדריך שלב אחר שלב לפיתוח יישומי קורא ברקוד או סורק.

ראשית, נסתכל ב-C# Barcode Reader API כדי לקרוא את הברקודים הזמינים בתמונת הקלט. לאחר מכן, נעבור על השלבים כיצד לזהות, לזהות ולחלץ נתוני ברקוד מהתמונה. תוכלו למצוא שלבים מפורטים וקטעי קוד. לבסוף, נספק קישורים שימושיים לשיפורים נוספים. אז בואו נתחיל!

הנושאים הבאים יכוונו במאמר זה:

  1. C# API לקריאת ברקוד מתמונה
  2. שלבים לקריאת ברקוד מתמונה
  3. קרא ברקוד ממפת סיביות
  4. קרא ברקוד מתמונה באמצעות Stream
  5. כיצד לקרוא ברקוד מסוג ספציפי
  6. קרא ברקודים מסוגים מרובים מתמונה
  7. זהה וקראה סטים מוגדרים מראש של סימבולוגיות
  8. זיהוי וקריאת ברקודים מרובים מתמונה
  9. קבל קואורדינטות X ו-Y של ברקוד
  10. קרא ברקוד מאזור ספציפי של תמונה
  11. קרא ברקוד ממספר אזורי תמונה

C# API לקריאת ברקוד מתמונה

לקריאת ברקוד מתמונה, נשתמש ב-Aspose.BarCode for .NET API. ה-API מאפשר יצירה, סריקה וקריאה של מגוון רחב של סימבוליות ברקוד. הוא מאפשר עיבוד תמונות ברקוד בפורמט JPEG, TIFF, PNG, BMP ו-GIF.

ה-API מספק את המחלקה BarCodeReader המאפשרת זיהוי של יותר מ-60 סוגי ברקוד שונים מתמונות נתונות. השלב הראשון בזיהוי ברקודים הוא לציין את מקור התמונה באמצעות ברקודים. זה יכול להיות קובץ, אובייקט מפת סיביות או זרם. לאחר מכן יש צורך לציין סמליות יעד בתוך הפרמטר DecodeType. אנו יכולים לבדוק את כל הסוגים השונים של סימבוליות נתמכות על ידי ציון ה-DecodeType.AllSupportedTypes. השיטה ReadBarCodes() של מחלקה זו מחזירה מערך של ברקודים מזוהים. המחלקה BarCodeResult של ה-API מאחסנת את נתוני הברקוד המוכרים כגון סוג ברקוד, טקסט קוד, אזור ופרמטרים אחרים.

ה-API מאפשר גם לציין את האזורים של תמונה שקורא הברקוד צריך לקרוא. ניתן לבצע זאת באמצעות אובייקט .NET Rectangle ומאפשר למנוע את הצורך למצוא ברקודים באזורי תמונה שאינם מכילים ברקודים כברירת מחדל.

אנא הורד את ה-DLL של ה-API או התקן אותו באמצעות 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#.

קרא ברקוד מ-Bitmap ב-C#

אנו יכולים לקרוא בקלות ברקוד מתמונה על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, טען תמונה באמצעות מחלקת Bitmap.
  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);
}
קרא ברקוד מתמונת Bitmap ב-C#.

קרא ברקוד מ-Bitmap ב-C#.

קרא ברקוד מתמונה באמצעות Stream ב-C#

אנו יכולים גם לטעון את תמונת הברקוד באמצעות זרם קבצים ולקרוא ברקוד על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, טען תמונה באמצעות המחלקה FileStream.
  2. לאחר מכן, צור מופע של המחלקה BarCodeReader עם אובייקט זרם.
  3. קרא למתודה ReadBarCodes() וקבל תוצאות זיהוי באובייקט המחלקה BarCodeResult.
  4. לבסוף, בצע לולאה בין התוצאות והצג את סוג הברקוד והטקסט.

דוגמת הקוד הבאה מראה כיצד לקרוא ברקוד מתמונה באמצעות Stream ב-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 - כל הסמליות הדו-ממדיות הנתמכות
  • PostalTypes - כל סמליות הדואר הנתמכות המשמשות בעיקר שירותי הדואר
  • 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. ראשית, קרא נתוני חיץ של קובץ תמונה בשיטת Bitmap.
  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. ראשית, טען תמונה באמצעות מחלקת Bitmap.
  2. לאחר מכן, הגדר מלבנים באמצעות המחלקה Rectangle.
  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 באמצעות תיעוד. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו ב[פורום התמיכה החינמית] שלנו27.

ראה גם