Вы ищете способ считывать штрих-коды или QR-коды с изображений программным способом? Если вы разработчик и вам нужно создать собственное приложение для считывания штрих-кода? Вы пришли в нужное место. Штрих-коды имеют решающее значение для точного отслеживания запасов и доставки продуктов от производства до точки продажи. Мы можем легко обнаруживать, распознавать и считывать различные типы штрих-кодов и QR-кодов в приложениях .NET. В этой статье мы покажем вам, как прочитать штрих-код с изображения на C#, выполнив всего несколько простых шагов. Вы можете использовать эту статью в качестве пошагового руководства по разработке приложений для чтения штрих-кодов или сканеров.
Во-первых, мы рассмотрим API-интерфейс C# Barcode Reader для чтения штрих-кодов, доступных на входном изображении. Далее мы рассмотрим этапы обнаружения, распознавания и извлечения данных штрих-кода из изображения. Вы найдете подробные шаги и фрагменты кода. Наконец, мы предоставим полезные ссылки для дальнейших улучшений. Итак, приступим!
В этой статье будут затронуты следующие темы:
- API C# для чтения штрих-кода с изображения
- Шаги по считыванию штрих-кода с изображения
- Чтение штрих-кода из растрового изображения
- Чтение штрих-кода с изображения с помощью Stream
- Как читать штрих-код определенного типа
- Чтение штрих-кодов нескольких типов с изображения
- Обнаружение и считывание предопределенных наборов символов
- Обнаружение и считывание нескольких штрих-кодов с изображения
- Получить координаты X и Y штрих-кода
- Чтение штрих-кода из определенной области изображения
- Чтение штрих-кода из нескольких областей изображения
С# 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
Чтение штрих-кода с изображения с помощью С#
Мы можем легко прочитать штрих-код с изображения, выполнив следующие шаги:
- Во-первых, загрузите изображение с помощью класса 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.
- Затем создайте экземпляр класса 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);
}
Чтение штрих-кода определенного типа из изображения в С#
Рекомендуется выбирать целевые символики штрих-кодов, которые будут рассматриваться для распознавания, чтобы свести к минимуму время, необходимое для завершения распознавания, и избежать попыток распознать устаревшие штрих-коды.
Мы можем указать целевой тип штрих-кода и прочитать штрих-код с изображения, выполнив следующие шаги:
- Во-первых, загрузите изображение с помощью класса 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);
}
Чтение штрих-кода нескольких типов из изображения в С#
Мы также можем указать несколько типов штрих-кода, выполнив следующие шаги:
- Во-первых, загрузите изображение с помощью класса 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);
Чтение предопределенного набора типов штрих-кодов из изображения в С#
Мы можем прочитать предопределенный набор символов для распознавания, определенный в классе DecodeTypes. Мы можем установить любой из следующих предопределенных наборов:
- AllSupportedTypes — все поддерживаемые типы штрих-кодов.
- Types1D — все поддерживаемые 1D-символики
- Types2D — все поддерживаемые 2D-символики
- 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("-------------------------");
}
Чтение нескольких штрих-кодов из изображения в С#
Мы также можем прочитать все доступные штрих-коды с изображения, выполнив следующие действия:
- Во-первых, загрузите изображение с помощью класса 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 штрих-кода с помощью С#
Мы можем прочитать координаты 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);
}
}
Чтение штрих-кода из определенной области изображения в С#
Мы можем прочитать штрих-код из определенной области или области изображения, выполнив следующие действия:
- Во-первых, прочитайте данные буфера файла изображения, используя метод 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");
// Прямоугольник 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#, вы можете узнать больше об Aspose.BarCode для .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.