IronQR 操作指南 使用不同的扫描模式读取 QR 码 如何使用不同的扫描模式读取二维码 Ahmad Sohail 已更新:2025年12月11日 下载 IronQR NuGet 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English 到 2025 年,随着越来越多的产品走向数字化和始终在线访问,读取二维码将成为一项常规任务。 将必要数据存储在紧凑的只读映像中已成为标准做法,开发人员需要有效的方法在不同的环境中提取这些信息。 IronQR 为二维码提供 3 种读取选项,每种选项都针对特定的使用场景而设计。 本操作指南将通过清晰的示例解释这三种方法。 如果您还没有看过,请查看之前关于从图像中读取二维码或编写自己的二维码的指南。 ## 如何使用不同的扫描模式读取二维码 下载 C# 库,即可使用高级扫描选项读取二维码 加载目标图像文件 初始化QrImageInput ,传入图像和所需的QrScanMode参数。 实例化QrReader类并将输入对象传递给Read方法。 检索结果以访问解码后的Value文本,或遍历Points数组以获取坐标数据。 了解二维码扫描模式 IronQR 通过QrScanMode枚举提供三种强大的扫描模式: -自动模式( QrScanMode.Auto ):结合机器学习检测和基本扫描算法,以实现最高的准确性和可靠性。 -仅基本扫描模式( QrScanMode.OnlyBasicScan ):当二维码清晰可见时,使用传统的图像处理技术进行快速可靠的扫描。 -检测模型模式( QrScanMode.OnlyDetectionModel ):利用机器学习技术检测二维码位置,非常适合提取坐标数据 让我们详细了解一下每种扫描方法。 仅基本扫描模式 只有基本扫描模式使用传统的图像处理算法,而没有使用机器学习。 当二维码清晰可见且位置恰当时,这种方法快速高效; 但是,如果三个角上的方块清晰可见,即使二维码损坏,它仍然可以正常工作。 :path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-basic.cs using System.Linq; using IronQr; using IronQr.Enum; using IronSoftware.Drawing; using System.IO; // Load the image var bmp = AnyBitmap.FromFile("damaged-qr.png"); // Create scan input using Only Basic Scan mode var input = new QrImageInput(bmp, QrScanMode.OnlyBasicScan); // Get the result var result = new QrReader().Read(input).FirstOrDefault(); // Save the output to a text file File.WriteAllText("basic-scan-output.txt", result.Value); Imports System.Linq Imports IronQr Imports IronQr.Enum Imports IronSoftware.Drawing Imports System.IO ' Load the image Dim bmp = AnyBitmap.FromFile("damaged-qr.png") ' Create scan input using Only Basic Scan mode Dim input = New QrImageInput(bmp, QrScanMode.OnlyBasicScan) ' Get the result Dim result = (New QrReader()).Read(input).FirstOrDefault() ' Save the output to a text file File.WriteAllText("basic-scan-output.txt", result.Value) $vbLabelText $csharpLabel 扫描输入 已保存的文本文件 自动扫描模式 自动扫描模式是默认模式(适用于QrScanMode ),也是功能最全面的选项。 它自动将机器学习检测与传统扫描算法相结合,从而在各种图像条件下提供最佳结果。 该示例展示了如何加载图像并激活Auto模式。 然后,它扫描图像,并将找到的每个二维码收集到一个列表中。最后,它遍历results集合,并将每个值对应的文本打印到控制台(在本例中,只有 URL)。 :path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-auto.cs using System; using IronQr; using IronQr.Enum; using IronSoftware.Drawing; // Load the image file var bmp = AnyBitmap.FromFile("cup.png"); // Create scan input using Auto Scan mode var input = new QrImageInput(bmp, QrScanMode.Auto); // Scan and read all QR codes var results = new QrReader().Read(input); // Initialize a counter to track the number of QR codes int count = 1; // Loop through each discovered QR code foreach (var result in results) { Console.WriteLine($"QR {count}: {result.Value}"); count++; } Imports System Imports IronQr Imports IronQr.Enum Imports IronSoftware.Drawing ' Load the image file Dim bmp = AnyBitmap.FromFile("cup.png") ' Create scan input using Auto Scan mode Dim input = New QrImageInput(bmp, QrScanMode.Auto) ' Scan and read all QR codes Dim results = New QrReader().Read(input) ' Initialize a counter to track the number of QR codes Dim count As Integer = 1 ' Loop through each discovered QR code For Each result In results Console.WriteLine($"QR {count}: {result.Value}") count += 1 Next $vbLabelText $csharpLabel 扫描输入 控制台显示 通过 IronQR 扫描照片后,咖啡馆网站的 URL 会被记录下来。 检测模型模式 检测模型模式专门利用机器学习技术来检测图像中的二维码位置。 这一特性使其在空间分析和计算机视觉应用中具有不可估量的价值。 它使用的坐标系原点位于(0, 0) 。 一般而言,QR 扫描器使用依赖于三个查找图案的标准解码算法,该模型捕获 ID 的所有四个顶点。 result对象包含一个Points集合,您可以通过遍历该集合来检索位置数据。 该代码重用了上一个示例中的杯子照片,以演示如何检测图像中的位置值。 此函数返回的坐标以严格的"之字形"顺序存储:左上、右上、左下,最后是右下。 :path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-detection-model.cs using System; using System.Linq; using IronQr; using IronQr.Enum; using IronSoftware.Drawing; // Load the image var bmp = AnyBitmap.FromFile("cup.png"); // Create scan input using Detection Model mode var input = new QrImageInput(bmp, QrScanMode.OnlyDetectionModel); // Read QR code var result = new QrReader().Read(input).FirstOrDefault(); // Print position data if (result != null) { if (result.Points != null) { foreach (var point in result.Points) { Console.WriteLine($"Point: X={point.X}, Y={point.Y}"); } } } Imports System Imports System.Linq Imports IronQr Imports IronQr.Enum Imports IronSoftware.Drawing ' Load the image Dim bmp = AnyBitmap.FromFile("cup.png") ' Create scan input using Detection Model mode Dim input = New QrImageInput(bmp, QrScanMode.OnlyDetectionModel) ' Read QR code Dim result = (New QrReader()).Read(input).FirstOrDefault() ' Print position data If result IsNot Nothing Then If result.Points IsNot Nothing Then For Each point In result.Points Console.WriteLine($"Point: X={point.X}, Y={point.Y}") Next End If End If $vbLabelText $csharpLabel 带标签的杯子图片 带标签的控制台 扫描方法比较 功能( QRScanMode ) 基本扫描( OnlyBasicScan扫描) 自动扫描( Auto ) 检测模型( OnlyDetectionModel检测模型) 输出 解码后的文本(值) 解码后的文本(值) 坐标(点) 算法 仅限传统方式 混合型(机器学习+传统) 仅限机器学习 重点 速度 可读性/检索 定位/计算机视觉 结论 IronQR的三种扫描模式可灵活应对任何二维码读取场景: -自动扫描:适用于一般用途,具有最高的准确性和可靠性 -基本扫描:速度快、效率高,图像质量高。 -检测模型:空间应用的位置感知 通过了解每种方法的优势,您可以根据自身需求优化二维码读取实现。 无论您需要全面的数据提取、闪电般的处理速度还是精确的位置检测,IronQR 都能满足您的需求。 有关更多示例和详细的 API 信息,请访问IronQR 文档或浏览GitHub 上的代码示例。 常见问题解答 读取二维码有哪些不同的扫描模式? IronQR 提供自动、手动和批量扫描等多种扫描模式,可在不同场景下高效读取 QR 码。 如何在 C# 项目中实现二维码扫描? 您可以通过集成 IronQR 库在 C# 项目中实现 QR 码扫描,该库提供了易于使用的方法来读取具有不同扫描模式的 QR 码。 使用 IronQR 进行二维码扫描有哪些好处? IronQR 具有精度高、处理速度快的特点,并支持不同的扫描模式,是 C# 项目中二维码扫描的多功能选择。 是否可以使用 IronQR 同时读取多个二维码? 是的,IronQR 支持批量扫描模式,允许您同时读取多个二维码以提高效率。 IronQR 是否支持扫描各种来源的二维码? IronQR 可以扫描各种来源的 QR 码,包括图像、PDF 和实时摄像机画面,为开发人员提供了灵活性。 IronQR 能否处理不同方向的 QR 代码? 是的,IronQR 的设计可以准确读取 QR 代码,无论其方向如何,确保可靠的扫描结果。 IronQR 中的自动扫描模式如何工作? IronQR 的自动扫描模式可智能检测和读取二维码,无需手动输入,简化了扫描流程。 使用 IronQR 进行二维码扫描需要哪些编程技能? 使用 IronQR 进行二维码扫描只需具备基本的 C# 编程知识即可,因为该库提供了直接的集成和使用方法。 是否有 IronQR 试用版可供测试? 是的,IronQR 提供试用版,允许开发人员在承诺购买之前测试其功能和扫描模式。 在哪里可以下载 IronQR 库? IronQR 库可从 Iron Software 网站下载,您还可以在该网站找到文档和支持资源。 Ahmad Sohail 立即与工程团队聊天 全栈开发者 Ahmad 是一名全栈开发人员,拥有扎实的 C#、Python 和 Web 技术基础。他对构建可扩展的软件解决方案深感兴趣,并喜欢探索设计和功能在实际应用中如何结合。在加入 Iron Software 团队之前,Ahmad 致力于自动化项目和 API 集成,专注于提高性能和开发人员体验。在业余时间,他喜欢尝试 UI/UX 想法,贡献开源工具,并偶尔从事技术写作和文档工作,以便让复杂主题更易于理解。 准备开始了吗? Nuget 下载 58,270 | 版本: 2026.2 刚刚发布 免费 NuGet 下载 总下载量:58,270 查看许可证