Чтение штрих-кода с изображения в C#

Вы ищете способ считывать штрих-коды или QR-коды с изображений программным способом? Если вы разработчик и вам нужно создать собственное приложение для считывания штрих-кода? Вы пришли в нужное место. Штрих-коды имеют решающее значение для точного отслеживания запасов и доставки продуктов от производства до точки продажи. Мы можем легко обнаруживать, распознавать и считывать различные типы штрих-кодов и QR-кодов в приложениях .NET. В этой статье мы покажем вам, как прочитать штрих-код с изображения на C#, выполнив всего несколько простых шагов. Вы можете использовать эту статью в качестве пошагового руководства по разработке приложений для чтения штрих-кодов или сканеров.

Во-первых, мы рассмотрим API-интерфейс C# Barcode Reader для чтения штрих-кодов, доступных на входном изображении. Далее мы рассмотрим этапы обнаружения, распознавания и извлечения данных штрих-кода из изображения. Вы найдете подробные шаги и фрагменты кода. Наконец, мы предоставим полезные ссылки для дальнейших улучшений. Итак, приступим!

В этой статье будут затронуты следующие темы:

  1. API C# для чтения штрих-кода с изображения
  2. Шаги по считыванию штрих-кода с изображения
  3. Чтение штрих-кода из растрового изображения
  4. Чтение штрих-кода с изображения с помощью Stream
  5. Как читать штрих-код определенного типа
  6. Чтение штрих-кодов нескольких типов с изображения
  7. Обнаружение и считывание предопределенных наборов символов
  8. Обнаружение и считывание нескольких штрих-кодов с изображения
  9. Получить координаты X и Y штрих-кода
  10. Чтение штрих-кода из определенной области изображения
  11. Чтение штрих-кода из нескольких областей изображения

С# 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 

Чтение штрих-кода с изображения с помощью С#

Мы можем легко прочитать штрих-код с изображения, выполнив следующие шаги:

  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#.

Чтение штрих-кода из растрового изображения в С#

Мы можем легко прочитать штрих-код с изображения, выполнив следующие шаги:

  1. Во-первых, загрузите изображение с помощью класса Bitmap.
  2. Затем создайте экземпляр класса BarCodeReader с объектом Bitmap.
  3. Вызвать метод ReadBarCodes() и получить результаты распознавания в объекте класса BarCodeResult.
  4. Наконец, просмотрите результаты и покажите тип и текст штрих-кода.

В следующем примере кода показано, как считывать штрих-код из растрового изображения в 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);
}
Чтение штрих-кода из растрового изображения в C#.

Чтение штрих-кода из растрового изображения в 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);
}

Чтение штрих-кода определенного типа из изображения в С#

Рекомендуется выбирать целевые символики штрих-кодов, которые будут рассматриваться для распознавания, чтобы свести к минимуму время, необходимое для завершения распознавания, и избежать попыток распознать устаревшие штрих-коды.

Мы можем указать целевой тип штрих-кода и прочитать штрих-код с изображения, выполнив следующие шаги:

  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#.

Чтение штрих-кода нескольких типов из изображения в С#

Мы также можем указать несколько типов штрих-кода, выполнив следующие шаги:

  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("-------------------------");
}
Чтение штрих-кодов нескольких типов из изображения в С#

Чтение штрих-кодов нескольких типов из изображения в С#

Мы также можем указать несколько типов декодирования в конструкторе класса BarCodeReader, как показано ниже:

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

Чтение предопределенного набора типов штрих-кодов из изображения в С#

Мы можем прочитать предопределенный набор символов для распознавания, определенный в классе DecodeTypes. Мы можем установить любой из следующих предопределенных наборов:

  • AllSupportedTypes — все поддерживаемые типы штрих-кодов.
  • Types1D — все поддерживаемые 1D-символики
  • Types2D — все поддерживаемые 2D-символики
  • 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("-------------------------");
}
Чтение предопределенного набора типов штрих-кодов из изображения в С#

Чтение предопределенного набора типов штрих-кодов из изображения в С#

Чтение нескольких штрих-кодов из изображения в С#

Мы также можем прочитать все доступные штрих-коды с изображения, выполнив следующие действия:

  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 штрих-кода с помощью С#

Мы можем прочитать координаты X и Y обнаруженного штрих-кода с изображения, выполнив следующие шаги:

  1. Во-первых, загрузите изображение с помощью класса BarCodeReader.
  2. Далее получить результаты распознавания в объекте класса BarCodeResult с помощью метода ReadBarCodes().
  3. Затем прокрутите результаты и проверьте, не является ли регион нулевым.
  4. После этого получите массив Points, ограничивающий область штрих-кода, с помощью метода Points.
  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 штрих-кода из изображения.

Чтение штрих-кода из определенной области изображения в С#

Мы можем прочитать штрих-код из определенной области или области изображения, выполнив следующие действия:

  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
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Прямоугольник 2D-штрих-кода на исходном изображении
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, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также