Ви шукаєте спосіб зчитувати штрих-коди або QR-коди із зображень програмним способом? Якщо ви розробник і вам потрібно створити власну програму для зчитування штрих-кодів? Ви потрапили в потрібне місце. Штрих-коди мають вирішальне значення для точного відстеження запасів і доставки продуктів від виробництва до точки продажу. Ми можемо легко виявляти, розпізнавати та читати різні типи штрих-кодів і QR-кодів у програмах .NET. У цій статті ми покажемо вам, як прочитати штрих-код із зображення в C#, виконавши кілька простих кроків. Ви можете використовувати цю статтю як покроковий посібник із розробки програм для зчитування штрих-кодів або сканерів.
По-перше, ми розглянемо C# Barcode Reader API для зчитування штрих-кодів, доступних у вхідному зображенні. Далі ми розглянемо кроки, як виявити, розпізнати та витягти дані штрих-коду із зображення. Ви знайдете докладні кроки та фрагменти коду. Нарешті, ми надамо корисні посилання для подальшого вдосконалення. Тож почнемо!
У цій статті будуть розглянуті такі теми:
- API C# для читання штрих-коду із зображення
- Кроки для читання штрих-коду із зображення
- Читання штрих-коду з растрового зображення
- Прочитайте штрих-код із зображення за допомогою потоку
- Як читати штрих-код певного типу
- Зчитування штрих-кодів кількох типів із зображення
- Виявлення та читання попередньо визначених наборів символів
- Виявлення та читання кількох штрих-кодів із зображення
- Отримати координати X і Y штрих-коду
- Прочитайте штрих-код із певної області зображення
- Зчитування штрих-коду з кількох областей зображення
C# API для читання штрих-коду із зображення
Для зчитування штрих-коду із зображення ми будемо використовувати API Aspose.BarCode for .NET. 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#
Ми можемо легко прочитати штрих-код із зображення, виконавши наведені нижче дії.
- По-перше, завантажте зображення за допомогою класу BarCodeReader.
- Викличте метод readBarCodes() і отримайте результати розпізнавання в об’єкті класу BarCodeResult.
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як зчитувати штрих-код із зображення в 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);
}
Читання штрих-коду з Bitmap у C#
Ми можемо легко прочитати штрих-код із зображення, виконавши наведені нижче дії.
- По-перше, завантажте зображення за допомогою класу Bitmap.
- Далі створіть екземпляр класу BarCodeReader з об’єктом Bitmap.
- Викличте метод ReadBarCodes() і отримайте результати розпізнавання в об’єкті класу BarCodeResult.
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як читати штрих-код із растрового зображення в C#.
// Цей приклад коду демонструє, як читати штрих-код із растрового зображення.
// Завантажити зображення в Bitmap
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);
}
Читання штрих-коду із зображення за допомогою Stream у C#
Ми також можемо завантажити зображення штрих-коду за допомогою потоку файлів і прочитати штрих-код, виконавши наведені нижче дії.
- По-перше, завантажте зображення за допомогою класу FileStream.
- Далі створіть екземпляр класу BarCodeReader з об’єктом потоку.
- Викличте метод ReadBarCodes() і отримайте результати розпізнавання в об’єкті класу BarCodeResult.
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як зчитувати штрих-код із зображення за допомогою 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#
Рекомендується вибрати цільові символіки штрих-кодів, які розглядатимуться для розпізнавання, щоб мінімізувати кількість часу, необхідного для завершення розпізнавання, і уникнути спроб розпізнати застарілі штрих-коди.
Ми можемо вказати цільовий тип штрих-коду та зчитати штрих-код із зображення, виконавши наведені нижче кроки:
- По-перше, завантажте зображення за допомогою класу BarCodeReader.
- Далі встановіть тип декодування штрих-коду, наприклад Code39Standard.
- Після цього отримати результати розпізнавання в об’єкті класу BarCodeResult за допомогою методу ReadBarCodes().
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як зчитати штрих-код певного типу із зображення за допомогою 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#
Ми також можемо вказати кілька типів штрих-кодів, виконавши наведені нижче дії.
- По-перше, завантажте зображення за допомогою класу BarCodeReader.
- Далі встановіть типи декодування штрих-коду за допомогою методу SetBarCodeReadType().
- Після цього отримати результати розпізнавання в об’єкті класу BarCodeResult за допомогою методу ReadBarCodes().
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як читати штрих-коди кількох типів із зображення за допомогою 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("-------------------------");
}
Ми також можемо вказати кілька типів декодування в конструкторі класу BarCodeReader, як показано нижче:
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);
Читання попередньо визначеного набору типів штрих-кодів із зображення в C#
Ми можемо читати попередньо визначений набір символів для розпізнавання, визначений у класі DecodeTypes. Ми можемо встановити будь-який із наступного попередньо визначеного набору:
- AllSupportedTypes - усі підтримувані типи штрих-кодів
- Types1D – усі підтримувані одновимірні символіки
- Types2D – усі підтримувані двовимірні символіки
- PostalTypes – усі підтримувані поштові символіки, які в основному використовуються поштовими службами
- MostCommonTypes - визначений набір найбільш широко використовуваних стандартів штрих-кодів
Ми можемо вказати попередньо визначений набір, виконавши наведені нижче кроки:
- По-перше, завантажте зображення за допомогою класу BarCodeReader.
- Далі встановіть тип декодування штрих-коду в конструкторі BarCodeReader або методі SetBarCodeReadType, наприклад DecodeType.Types2D.
- Після цього отримати результати розпізнавання в об’єкті класу BarCodeResult за допомогою методу ReadBarCodes().
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як читати штрих-код за допомогою попередньо визначеного набору символів у 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#
Ми також можемо зчитувати всі доступні штрих-коди із зображення, виконавши наведені нижче дії.
- По-перше, завантажте зображення за допомогою класу BarCodeReader.
- Далі встановіть тип декодування штрих-коду як ALLSUPPORTEDTYPES.
- Після цього отримати результати розпізнавання в об’єкті класу BarCodeResult за допомогою методу ReadBarCodes().
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як читати кілька штрих-кодів із зображення за допомогою 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 виявленого штрих-коду із зображення, виконавши наведені нижче дії.
- По-перше, завантажте зображення за допомогою класу BarCodeReader.
- Потім отримайте результати розпізнавання в об’єкті класу BarCodeResult за допомогою методу ReadBarCodes().
- Потім перегляньте результати та перевірте, чи регіон не нульовий.
- Після цього отримайте масив Points, що обмежує область штрих-коду за допомогою Points.
- Нарешті, покажіть точки 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);
}
}
Читання штрих-коду з певної області зображення в C#
Ми можемо прочитати штрих-код із певного регіону чи ділянки зображення, виконавши наведені нижче дії.
- По-перше, прочитайте дані буфера файлу зображення за допомогою методу Bitmap.
- Далі створіть екземпляр класу BarCodeReader. Він приймає зображення, прямокутну область і тип декодування як аргументи.
- Після цього отримати результати розпізнавання в об’єкті класу BarCodeResult за допомогою методу ReadBarCodes().
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як зчитувати штрих-код із певної області зображення за допомогою 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#
Ми також можемо зчитувати штрих-код із кількох областей зображення, виконавши наведені нижче дії.
- По-перше, завантажте зображення за допомогою класу Bitmap.
- Далі визначте прямокутники за допомогою класу Rectangle.
- Потім створіть екземпляр класу BarCodeReader.
- Тим часом викличте SetBarCodeImage() з об’єктом зображення та прямокутниками як аргументами.
- За бажанням установіть типи зчитування штрих-кодів за допомогою методу SetBarCodeReadType().
- Після цього отримати результати розпізнавання в об’єкті класу BarCodeResult за допомогою методу ReadBarCodes().
- Нарешті, перегляньте результати та покажіть тип і текст штрих-коду.
У наведеному нижче прикладі коду показано, як зчитувати штрих-код із кількох областей зображення за допомогою C#.
// Цей приклад коду демонструє, як зчитувати штрих-код із певної області зображення.
// Завантажити зображення в Bitmap
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#, ви можете дізнатися більше про Aspose.BarCode for .NET API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.