条码控件Aspose.BarCode入门教程(8):C#从图像中读取条形码

本文主要是介绍条码控件Aspose.BarCode入门教程(8):C#从图像中读取条形码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.BarCode 最新下载(qun:767755948)icon-default.png?t=N3I4https://www.evget.com/product/576/download

您是否正在寻找一种以编程方式从图像中读取条形码或 QR 码的方法?如果您是开发人员,并且需要创建自己的条码阅读器应用程序?你来对地方了。条形码对于准确跟踪库存和产品从制造到销售点的交付至关重要。我们可以在.NET应用程序中轻松检测、识别和读取不同类型的条形码和二维码。在本文中,我们将通过几个简单的步骤向您展示如何使用 C# 从图像中读取条形码。您可以将本文用作开发条形码阅读器或扫描器应用程序的分步指南。

首先,我们将了解 C# 条码阅读器 API,以读取输入图像中可用的条码。接下来,我们将介绍如何从图像中检测、识别和提取条形码数据的步骤。您将找到详细的步骤和代码片段。最后,我们将提供有用的链接以进一步增强功能。让我们开始吧!

用于从图像读取条形码的 C# API

为了从图像中读取条形码,我们将使用Aspose.BarCode for .NET API。API 允许生成、扫描和读取范围广泛的条码符号。它支持以JPEG、TIFF、PNG、BMP和GIF格式呈现条码图像。

API 提供了BarCodeReader类,可以从给定的图像中识别 60 多种不同的条形码类型。检测条形码的第一步是指定带有条形码的图像的来源。这可以是文件、位图对象或流。然后需要在DecodeType参数中指定目标符号。我们可以通过指定DecodeType.AllSupportedTypes来查看所有不同类型的支持符号。此类的ReadBarCodes ()方法返回一个已识别条码数组。API的BarCodeResult类存储识别出的条码数据,如条码类型、条码文本、区域等参数。

API 还允许指定条形码阅读器应读取的图像区域。这可以使用 .NET Rectangle 对象来完成,并且允许避免在默认情况下不包含条码的图像区域中查找条码的需要。

请下载 API 的 DLL或使用NuGet安装它。

PM> Install-Package Aspose.BarCode

使用 C# 从图像中读取条形码

我们可以按照以下步骤轻松地从图像中读取条形码:

  1. 首先,使用BarCodeReader类加载图像。
  2. 调用readBarCodes()方法,在BarCodeResult类对象中获取识别结果。
  3. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例显示了如何在 C# 中从图像中读取条形码

// This code example demonstrates how to read barcode from an image file.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");// Read barcode and show results
foreach(BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

C#从位图中读取条码

我们可以按照以下步骤轻松地从图像中读取条形码:

  1. 首先,使用Bitmap类加载图像。
  2. 接下来,使用Bitmap对象创建BarCodeReader类的实例。
  3. 调用ReadBarCodes()方法,在BarCodeResult类对象中获取识别结果。
  4. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例显示了如何在 C# 中从位图中读取条形码

// This code example demonstrates how to read barcode from bitmap.
// Load image in Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");// Initialize Barcode reader
BarCodeReader reader = new BarCodeReader(bmp);// Read all barcodes in the provided area
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

在 C# 中使用 Stream 从图像中读取条码

我们还可以使用文件流加载条码图像并按照以下步骤读取条码:

  1. 首先,使用FileStream类加载图像。
  2. 接下来,使用流对象创建BarCodeReader类的实例。
  3. 调用ReadBarCodes()方法,在BarCodeResult类对象中获取识别结果。
  4. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例展示了如何在 C# 中使用 Stream 从图像中读取条形码

// This code example demonstrates how to read barcode from an image using file stream.
// Load image
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);// Initialize Barcode reader
BarCodeReader reader = new BarCodeReader(stream);// Read all barcodes in the provided area
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. 之后,使用ReadBarCodes()方法在BarCodeResult类对象中获取识别结果。
  4. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例展示了如何使用 C# 从图像中读取特定类型的条形码

// This code example demonstrates how to read barcode of a specific decode type from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);// Read barcode of type 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. 之后,使用ReadBarCodes()方法在BarCodeResult类对象中获取识别结果。
  4. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例展示了如何使用 C# 从图像中读取多种类型的条形码

// This code example demonstrates how to read barcode of multiple decode types from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);// Read barcodes
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 - 定义了一组最广泛使用的条码标准

我们可以按照以下步骤指定预定义集:

  1. 首先,首先,使用BarCodeReader类加载图像。
  2. 接下来,在BarCodeReader构造函数或SetBarCodeReadType方法中设置条码解码类型,例如DecodeType.Types2D
  3. 之后,使用ReadBarCodes()方法在BarCodeResult类对象中获取识别结果。
  4. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例显示了如何使用 C# 中预定义的一组符号来读取条形码

// This code example demonstrates how to read a barcode using predefined set of symbologies.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);// Read barcode and show results
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
Console.Out.WriteLine("-------------------------");
}

在 C# 中从图像中读取多个条形码

我们还可以按照以下步骤从图像中读取所有可用的条形码:

  1. 首先,使用BarCodeReader类加载图像。
  2. 接下来,将条形码解码类型设置为ALL_SUPPORTED_TYPES
  3. 之后,使用ReadBarCodes()方法在BarCodeResult类对象中获取识别结果。
  4. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例显示了如何使用 C# 从图像中读取多个条形码

// This code example demonstrates how to read barcode multiple barcodes from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);// Read all types of barcode available on the input image
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
Console.Out.WriteLine("-------------------------");
}

使用 C# 获取条形码的 X 和 Y 坐标

我们可以按照以下步骤从图像中读取检测到的条形码的 X 和 Y 坐标:

  1. 首先,使用BarCodeReader类加载图像。
  2. 接下来,使用ReadBarCodes()方法在BarCodeResult类对象中获取识别结果。
  3. 然后,遍历结果并检查Region是否不为空。
  4. 之后,使用Points获取限制条形码区域的 Points 数组。
  5. 最后,显示条形码的 X 和 Y 点。

以下代码示例显示如何使用 C# 从图像中获取条形码的 X 和 Y 坐标点

// This code example demonstrates how to read X & Y region point of barcodes from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);// Read barcode
foreach (BarCodeResult result in reader.ReadBarCodes())
{
if (result.Region != null)
{
// Display x and y coordinates of all the barcodes detected
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# 中从图像的特定区域读取条形码

我们可以按照以下步骤从特定区域或图像区域读取条形码:

  1. 首先,使用位图方法读取图像文件的缓冲区数据。
  2. 接下来,创建BarCodeReader类的一个实例。它以图像、矩形区域和解码类型作为参数。
  3. 之后,使用ReadBarCodes()方法在BarCodeResult类对象中获取识别结果。
  4. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例展示了如何使用 C# 从图像的特定区域读取条形码

// This code example demonstrates how to read barcode from specific region of an image.
// Load image
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");// Create an instance of BarCodeReader class
// and specify an area to look for the barcode
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));// Read all barcodes in the provided area
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

在 C# 中从图像的多个区域读取条形码

我们还可以按照以下步骤从图像的多个区域读取条形码:

  1. 首先,使用Bitmap类加载图像。
  2. 接下来,使用 Rectangle 类定义矩形。
  3. 然后,创建BarCodeReader类的实例。
  4. 同时,使用图像对象和矩形作为参数调用SetBarCodeImage() 。
  5. 或者,使用SetBarCodeReadType()方法设置条码读取类型。
  6. 之后,使用ReadBarCodes()方法在BarCodeResult类对象中获取识别结果。
  7. 最后,遍历结果并显示条形码的类型和文本。

以下代码示例显示如何使用 C# 从图像的多个区域读取条形码

// This code example demonstrates how to read barcode from specific region of an image.
// Load image in Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");// Rectangle of a 2D barcode in the source image
Rectangle rect2D = new Rectangle(0, 0, 400, 200);// Rectangle of Code128 barcode in the source image
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);// Initialize Barcode reader
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);// Read all barcodes in the provided area
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入门教程(8):C#从图像中读取条形码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/167575

相关文章

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点