如何在 C# 中读取图像中的二维码
通过使用 IronDrawing 加载图像、创建 QrImageInput 对象并使用 BarcodeReader.Read 方法高效解码 QR 数据,IronQR 使开发人员能够在 C# 中从各种图像格式中读取 QR 代码。
作为标题:2(快速入门:在 C# 中从图像读取二维码)
如何从图片中读取二维码
- 下载用于读取图像中二维码的 C# 库
- 使用 IronDrawing 导入图像数据
- Create a `QrImageInput` object from the image data
- Pass the object to the
`Read`method - 遍历每个检测到的 QR 码并查看其信息
如何读取不同图像格式的二维码? IronQR 内置支持从各种图像格式中读取二维码。 该功能使用[高级机器学习模型](https://ironsoftware.com/csharp/qr/features/ai/)来确保不同媒体类型的准确解码。支持的格式包括 - 联合图像专家组 (JPEG) - 便携式网络图形 (PNG) - 图形交换格式 (GIF) - 标签图像文件格式 (TIFF) 位图图像文件(BMP) - WBMP WebP - 图标 (ico) - WMF - RawFormat(原始格式) 该格式支持由开源库 [IronDrawing](https://ironsoftware.com/open-source/csharp/drawing/docs/) 实现,该库可高效处理图像。 您可以处理数码相机、扫描仪、移动设备或网络下载的二维码,而无需进行格式转换。
```csharp :title=Quickstart // Import necessary IronQR and IronDrawing namespaces using IronSoftware.Drawing; using IronBarcode; public class QRCodeReader { public static void Main() { // Load an image from a file path using (var inputImage = Image.FromFile("path/to/your/image/file.webp")) { // Create a QrImageInput object from the image var qrImageInput = new QrImageInput(inputImage); // Decode the 二维码 from the image var result = BarcodeReader.Read(qrImageInput); // Iterate through each detected 二维码 and display its information foreach (var barcodeResult in result.Barcodes) { Console.WriteLine($"QR Code Data: {barcodeResult.Value}"); } } } } ``` *注意:请将"path/to/your/image/file.webp"替换为您的二维码图像文件的实际路径。* 想知道示例图片中的二维码值吗?不妨试试这段代码!为什么 IronQR 支持多种图像格式? 阅读二维码是指扫描和解码存储在二维码中的信息。 这通常需要使用相机或扫描仪,再配上能解释 QR 码数据的软件来完成。 二维码中的信息可以是文本、网址、联系方式或其他形式的数据。 IronQR 的多格式支持对于二维码出现在从营销材料和产品包装到数字文档和网络内容等各种场合的实际应用至关重要。 通过支持多种格式,IronQR 可确保开发人员构建强大的应用程序,而不必担心图像格式的兼容性。 了解有关 IronQR 的[阅读功能](https://ironsoftware.com/csharp/qr/features/read/)的更多信息,以了解这种灵活性如何增强您的开发工作流程。何时使用每种图像格式? 在二维码处理过程中,不同的图像格式有不同的用途: - **PNG**:最适用于需要透明或图像质量要求极高的二维码。 PNG 的无损压缩可确保二维码图案保持清晰可读。 - **JPEG**:非常适合包含 QR 代码的照片或文件大小有限制的情况。 使用较高的质量设置(80% 以上),以防止压缩痕迹影响可读性。 - **TIFF**:非常适合存档或在企业环境中处理扫描文件。 - **WebP**:现代格式,具有出色的压缩效果和质量保证,是网络应用程序的理想选择。 无论使用何种格式,都要确保图像保持足够的分辨率(打印 QR 码时至少 300 DPI)和对比度,以获得最佳效果。请查看我们的[高级 QR 阅读示例](https://ironsoftware.com/csharp/qr/examples/read-qr-code-advanced/),了解特定格式的优化技术。如果图像质量不佳会怎样? IronQR 集成了[容错功能](https://ironsoftware.com/csharp/qr/features/fault-tolerance/)来处理不完美的图像。 在处理质量较差的图片时,图书馆采用了多种策略: 1.**纠错**:QR 代码具有纠错功能(L、M、Q、H 级),即使代码有多达 30% 的部分损坏,也能恢复数据。 2.**机器学习增强**:IronQR 的 ML 模型可检测和补偿模糊、失真和光线不足等常见问题 3.**预处理**:自动图像增强可在尝试解码前提高对比度和清晰度 对于具有挑战性的场景,可考虑使用[自定义 QR 阅读模式选项](https://ironsoftware.com/csharp/qr/examples/read-qr-with-machine-learning/)对阅读过程进行微调: ```csharp // Example: Reading 二维码s with enhanced error correction using IronBarcode; public class EnhancedQRReader { public static void ReadPoorQualityImage() { // Configure reader with multiple attempts and error correction var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Detailed, // More thorough scanning ExpectMultipleBarcodes = true, // Check for multiple codes ExpectBarcodeTypes = BarcodeType.QRCode // Focus on 二维码s only }; using (var inputImage = Image.FromFile("blurry_qr_code.jpg")) { var qrImageInput = new QrImageInput(inputImage); var results = BarcodeReader.Read(qrImageInput, options); foreach (var result in results.Barcodes) { Console.WriteLine($"Decoded: {result.Value}"); Console.WriteLine($"Confidence: {result.Confidence}%"); } } } } ```
## 从二维码中获取值 [//]: # (这是一条将被隐藏的评论。 上述示例中已经提到了价值。 我会在再次定义它时采取更简洁但更具解释性的方式) 大多数 IronQR 函数返回一个集合,以支持多种检测方式。 由于`results`是一个对象序列,它本身没有`Value`属性。 示例代码专门从集合中选择第一个`QrResult`并检索其值。 ```csharp :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-value.cs ```
## 检测图像中的二维码位置 IronQR 不仅限于简单的解码,还能精确定位二维码在图像中的位置。 此定位采用标准坐标系,其中 PointF (0,0) 表示图像的左上角。 可以通过`Points[]`数组访问二维码角点的确切空间坐标。 在这个例子中,检测到的二维码的四个点的坐标被检索出来并打印到控制台。 此函数返回的坐标以严格的"之字形"顺序存储:左上、右上、左下,最后是右下。 ```csharp :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-position.cs ```
### 输入二维码
### 输出 请注意,系统已将每个二维码角点的精确空间坐标记录到控制台。
## 支持的二维码类型 创建和读取多种类型的二维码均受支持。 IronQR 提供对各种 QR 代码格式的全面支持,以满足不同的应用需求。 在我们的文档中了解更多有关 [ 支持的 QR 格式](https://ironsoftware.com/csharp/qr/get-started/supported-qr-formats/)的信息。 以下是支持的二维码类型: - **QRCode**:目前最常用的标准 QR 代码。 它最多可存储 7089 个数字字符或 4296 个字母数字字符,因此适用于网站 URL、联系信息和其他应用。
- **MicroQRCode**:标准 QR 代码的缩小版,专为有限空间而设计。 它最多可存储 35 个数字字符或 21 个字母数字字符,是小包装或小印刷标签的理想选择。
- **RMQRCode**:RMQR 代码(矩形微型 QR 代码)是一种紧凑的矩形版本,而不是正方形。 该版本可灵活调整长宽比,适用于有矩形空间的应用。
如何选择正确的 QR 代码类型? 选择合适的 QR 代码类型取决于您的具体使用情况和限制条件: - **标准 QR 代码**:适用于空间不受限制且需要最大数据容量的通用应用程序。 非常适合 URL、WiFi 证书、vCard 联系人或详细的产品信息。 有关实施细节,请参阅我们的 [QR 代码生成示例](https://ironsoftware.com/csharp/qr/examples/generate-qr-code/)。 - **微型 QR 码**:适用于处理电子元件、珠宝标签或医疗设备等小型表面。 尽管容量有限,但它非常适合序列号、简单的 URL 或基本的跟踪代码。 - **RMQR代码**:如果可用空间有特定的尺寸限制,如圆柱形产品上的窄标签或包装边缘的拉长空间,请选择矩形代码。数据存储有哪些限制? 了解数据容量有助于优化 QR 代码的实施: |QR 代码类型|仅限数字|字母数字|二进制|汉字| |--------------|-------------|--------------|---------|--------| |标准 QR|7,089|4,296|2,953|1,817| |微型 QR| 35 | 21 | 15 | 9 | |RMQR|变量|变量|变量|变量| 在规划数据存储时要考虑这些因素: - 使用 URL 缩写器进行网页链接,以最大限度地利用可用空间 - 对大型数据集进行数据压缩 - 选择适当的纠错级别(纠错级别越高,容量越小) 对于高级实施,请浏览我们的[风格化 QR 代码生成指南](https://ironsoftware.com/csharp/qr/examples/generate-styled-qr/),以平衡美观与数据容量。何时应使用 Micro 或RMQR代码? Micro 和RMQR代码在特定场景中表现出色: **微型二维码非常适合:** - 需要跟踪元件的电子电路板 - 需要患者或药物标识符的小型医疗设备 - 雕刻空间有限的珠宝鉴定 - 制造业中的微型产品标签 **RMQR代码最适合:** - 管子或管道上的窄幅运输标签 - 笔杆或工具上拉长的空格 - 横幅式营销材料 - 融入现有的矩形设计元素 下面是一个阅读不同 QR 代码类型的实用示例: ```csharp using IronBarcode; using IronSoftware.Drawing; public class MultiTypeQRReader { public static void ReadVariousQRTypes() { // Configure reader to handle all 二维码 types var options = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeType.QRCode | BarcodeType.MicroQRCode | BarcodeType.RectangularMicroQRCode }; string[] imagePaths = { "standard_qr.png", "micro_qr.png", "rectangular_qr.png" }; foreach (var path in imagePaths) { using (var image = Image.FromFile(path)) { var qrInput = new QrImageInput(image); var results = BarcodeReader.Read(qrInput, options); foreach (var qr in results.Barcodes) { Console.WriteLine($"Type: {qr.BarcodeType}"); Console.WriteLine($"Data: {qr.Value}"); Console.WriteLine($"Format: {qr.Format}"); Console.WriteLine("---"); } } } } } ``` 对于生产部署,请查看我们的[NuGet 软件包指南](https://ironsoftware.com/csharp/qr/get-started/nuget-packages/),以确保您拥有适合您平台的软件包,并查看[API 参考](https://ironsoftware.com/csharp/qr/object-reference/api/),以获取有关所有可用方法和属性的全面文档。

何时使用每种图像格式? 在二维码处理过程中,不同的图像格式有不同的用途: - **PNG**:最适用于需要透明或图像质量要求极高的二维码。 PNG 的无损压缩可确保二维码图案保持清晰可读。 - **JPEG**:非常适合包含 QR 代码的照片或文件大小有限制的情况。 使用较高的质量设置(80% 以上),以防止压缩痕迹影响可读性。 - **TIFF**:非常适合存档或在企业环境中处理扫描文件。 - **WebP**:现代格式,具有出色的压缩效果和质量保证,是网络应用程序的理想选择。 无论使用何种格式,都要确保图像保持足够的分辨率(打印 QR 码时至少 300 DPI)和对比度,以获得最佳效果。请查看我们的[高级 QR 阅读示例](https://ironsoftware.com/csharp/qr/examples/read-qr-code-advanced/),了解特定格式的优化技术。如果图像质量不佳会怎样? IronQR 集成了[容错功能](https://ironsoftware.com/csharp/qr/features/fault-tolerance/)来处理不完美的图像。 在处理质量较差的图片时,图书馆采用了多种策略: 1.**纠错**:QR 代码具有纠错功能(L、M、Q、H 级),即使代码有多达 30% 的部分损坏,也能恢复数据。 2.**机器学习增强**:IronQR 的 ML 模型可检测和补偿模糊、失真和光线不足等常见问题 3.**预处理**:自动图像增强可在尝试解码前提高对比度和清晰度 对于具有挑战性的场景,可考虑使用[自定义 QR 阅读模式选项](https://ironsoftware.com/csharp/qr/examples/read-qr-with-machine-learning/)对阅读过程进行微调: ```csharp // Example: Reading 二维码s with enhanced error correction using IronBarcode; public class EnhancedQRReader { public static void ReadPoorQualityImage() { // Configure reader with multiple attempts and error correction var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Detailed, // More thorough scanning ExpectMultipleBarcodes = true, // Check for multiple codes ExpectBarcodeTypes = BarcodeType.QRCode // Focus on 二维码s only }; using (var inputImage = Image.FromFile("blurry_qr_code.jpg")) { var qrImageInput = new QrImageInput(inputImage); var results = BarcodeReader.Read(qrImageInput, options); foreach (var result in results.Barcodes) { Console.WriteLine($"Decoded: {result.Value}"); Console.WriteLine($"Confidence: {result.Confidence}%"); } } } } ```
## 从二维码中获取值 [//]: # (这是一条将被隐藏的评论。 上述示例中已经提到了价值。 我会在再次定义它时采取更简洁但更具解释性的方式) 大多数 IronQR 函数返回一个集合,以支持多种检测方式。 由于`results`是一个对象序列,它本身没有`Value`属性。 示例代码专门从集合中选择第一个`QrResult`并检索其值。 ```csharp :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-value.cs ```
## 检测图像中的二维码位置 IronQR 不仅限于简单的解码,还能精确定位二维码在图像中的位置。 此定位采用标准坐标系,其中 PointF (0,0) 表示图像的左上角。 可以通过`Points[]`数组访问二维码角点的确切空间坐标。 在这个例子中,检测到的二维码的四个点的坐标被检索出来并打印到控制台。 此函数返回的坐标以严格的"之字形"顺序存储:左上、右上、左下,最后是右下。 ```csharp :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-position.cs ```
### 输入二维码
### 输出 请注意,系统已将每个二维码角点的精确空间坐标记录到控制台。
## 支持的二维码类型 创建和读取多种类型的二维码均受支持。 IronQR 提供对各种 QR 代码格式的全面支持,以满足不同的应用需求。 在我们的文档中了解更多有关 [ 支持的 QR 格式](https://ironsoftware.com/csharp/qr/get-started/supported-qr-formats/)的信息。 以下是支持的二维码类型: - **QRCode**:目前最常用的标准 QR 代码。 它最多可存储 7089 个数字字符或 4296 个字母数字字符,因此适用于网站 URL、联系信息和其他应用。
- **MicroQRCode**:标准 QR 代码的缩小版,专为有限空间而设计。 它最多可存储 35 个数字字符或 21 个字母数字字符,是小包装或小印刷标签的理想选择。
- **RMQRCode**:RMQR 代码(矩形微型 QR 代码)是一种紧凑的矩形版本,而不是正方形。 该版本可灵活调整长宽比,适用于有矩形空间的应用。
如何选择正确的 QR 代码类型? 选择合适的 QR 代码类型取决于您的具体使用情况和限制条件: - **标准 QR 代码**:适用于空间不受限制且需要最大数据容量的通用应用程序。 非常适合 URL、WiFi 证书、vCard 联系人或详细的产品信息。 有关实施细节,请参阅我们的 [QR 代码生成示例](https://ironsoftware.com/csharp/qr/examples/generate-qr-code/)。 - **微型 QR 码**:适用于处理电子元件、珠宝标签或医疗设备等小型表面。 尽管容量有限,但它非常适合序列号、简单的 URL 或基本的跟踪代码。 - **RMQR代码**:如果可用空间有特定的尺寸限制,如圆柱形产品上的窄标签或包装边缘的拉长空间,请选择矩形代码。数据存储有哪些限制? 了解数据容量有助于优化 QR 代码的实施: |QR 代码类型|仅限数字|字母数字|二进制|汉字| |--------------|-------------|--------------|---------|--------| |标准 QR|7,089|4,296|2,953|1,817| |微型 QR| 35 | 21 | 15 | 9 | |RMQR|变量|变量|变量|变量| 在规划数据存储时要考虑这些因素: - 使用 URL 缩写器进行网页链接,以最大限度地利用可用空间 - 对大型数据集进行数据压缩 - 选择适当的纠错级别(纠错级别越高,容量越小) 对于高级实施,请浏览我们的[风格化 QR 代码生成指南](https://ironsoftware.com/csharp/qr/examples/generate-styled-qr/),以平衡美观与数据容量。何时应使用 Micro 或RMQR代码? Micro 和RMQR代码在特定场景中表现出色: **微型二维码非常适合:** - 需要跟踪元件的电子电路板 - 需要患者或药物标识符的小型医疗设备 - 雕刻空间有限的珠宝鉴定 - 制造业中的微型产品标签 **RMQR代码最适合:** - 管子或管道上的窄幅运输标签 - 笔杆或工具上拉长的空格 - 横幅式营销材料 - 融入现有的矩形设计元素 下面是一个阅读不同 QR 代码类型的实用示例: ```csharp using IronBarcode; using IronSoftware.Drawing; public class MultiTypeQRReader { public static void ReadVariousQRTypes() { // Configure reader to handle all 二维码 types var options = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeType.QRCode | BarcodeType.MicroQRCode | BarcodeType.RectangularMicroQRCode }; string[] imagePaths = { "standard_qr.png", "micro_qr.png", "rectangular_qr.png" }; foreach (var path in imagePaths) { using (var image = Image.FromFile(path)) { var qrInput = new QrImageInput(image); var results = BarcodeReader.Read(qrInput, options); foreach (var qr in results.Barcodes) { Console.WriteLine($"Type: {qr.BarcodeType}"); Console.WriteLine($"Data: {qr.Value}"); Console.WriteLine($"Format: {qr.Format}"); Console.WriteLine("---"); } } } } } ``` 对于生产部署,请查看我们的[NuGet 软件包指南](https://ironsoftware.com/csharp/qr/get-started/nuget-packages/),以确保您拥有适合您平台的软件包,并查看[API 参考](https://ironsoftware.com/csharp/qr/object-reference/api/),以获取有关所有可用方法和属性的全面文档。
## 从二维码中获取值 [//]: # (这是一条将被隐藏的评论。 上述示例中已经提到了价值。 我会在再次定义它时采取更简洁但更具解释性的方式) 大多数 IronQR 函数返回一个集合,以支持多种检测方式。 由于`results`是一个对象序列,它本身没有`Value`属性。 示例代码专门从集合中选择第一个`QrResult`并检索其值。 ```csharp :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-value.cs ```
## 检测图像中的二维码位置 IronQR 不仅限于简单的解码,还能精确定位二维码在图像中的位置。 此定位采用标准坐标系,其中 PointF (0,0) 表示图像的左上角。 可以通过`Points[]`数组访问二维码角点的确切空间坐标。 在这个例子中,检测到的二维码的四个点的坐标被检索出来并打印到控制台。 此函数返回的坐标以严格的"之字形"顺序存储:左上、右上、左下,最后是右下。 ```csharp :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-position.cs ```
### 输入二维码


## 支持的二维码类型 创建和读取多种类型的二维码均受支持。 IronQR 提供对各种 QR 代码格式的全面支持,以满足不同的应用需求。 在我们的文档中了解更多有关 [ 支持的 QR 格式](https://ironsoftware.com/csharp/qr/get-started/supported-qr-formats/)的信息。 以下是支持的二维码类型: - **QRCode**:目前最常用的标准 QR 代码。 它最多可存储 7089 个数字字符或 4296 个字母数字字符,因此适用于网站 URL、联系信息和其他应用。



如何选择正确的 QR 代码类型? 选择合适的 QR 代码类型取决于您的具体使用情况和限制条件: - **标准 QR 代码**:适用于空间不受限制且需要最大数据容量的通用应用程序。 非常适合 URL、WiFi 证书、vCard 联系人或详细的产品信息。 有关实施细节,请参阅我们的 [QR 代码生成示例](https://ironsoftware.com/csharp/qr/examples/generate-qr-code/)。 - **微型 QR 码**:适用于处理电子元件、珠宝标签或医疗设备等小型表面。 尽管容量有限,但它非常适合序列号、简单的 URL 或基本的跟踪代码。 - **RMQR代码**:如果可用空间有特定的尺寸限制,如圆柱形产品上的窄标签或包装边缘的拉长空间,请选择矩形代码。数据存储有哪些限制? 了解数据容量有助于优化 QR 代码的实施: |QR 代码类型|仅限数字|字母数字|二进制|汉字| |--------------|-------------|--------------|---------|--------| |标准 QR|7,089|4,296|2,953|1,817| |微型 QR| 35 | 21 | 15 | 9 | |RMQR|变量|变量|变量|变量| 在规划数据存储时要考虑这些因素: - 使用 URL 缩写器进行网页链接,以最大限度地利用可用空间 - 对大型数据集进行数据压缩 - 选择适当的纠错级别(纠错级别越高,容量越小) 对于高级实施,请浏览我们的[风格化 QR 代码生成指南](https://ironsoftware.com/csharp/qr/examples/generate-styled-qr/),以平衡美观与数据容量。何时应使用 Micro 或RMQR代码? Micro 和RMQR代码在特定场景中表现出色: **微型二维码非常适合:** - 需要跟踪元件的电子电路板 - 需要患者或药物标识符的小型医疗设备 - 雕刻空间有限的珠宝鉴定 - 制造业中的微型产品标签 **RMQR代码最适合:** - 管子或管道上的窄幅运输标签 - 笔杆或工具上拉长的空格 - 横幅式营销材料 - 融入现有的矩形设计元素 下面是一个阅读不同 QR 代码类型的实用示例: ```csharp using IronBarcode; using IronSoftware.Drawing; public class MultiTypeQRReader { public static void ReadVariousQRTypes() { // Configure reader to handle all 二维码 types var options = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeType.QRCode | BarcodeType.MicroQRCode | BarcodeType.RectangularMicroQRCode }; string[] imagePaths = { "standard_qr.png", "micro_qr.png", "rectangular_qr.png" }; foreach (var path in imagePaths) { using (var image = Image.FromFile(path)) { var qrInput = new QrImageInput(image); var results = BarcodeReader.Read(qrInput, options); foreach (var qr in results.Barcodes) { Console.WriteLine($"Type: {qr.BarcodeType}"); Console.WriteLine($"Data: {qr.Value}"); Console.WriteLine($"Format: {qr.Format}"); Console.WriteLine("---"); } } } } } ``` 对于生产部署,请查看我们的[NuGet 软件包指南](https://ironsoftware.com/csharp/qr/get-started/nuget-packages/),以确保您拥有适合您平台的软件包,并查看[API 参考](https://ironsoftware.com/csharp/qr/object-reference/api/),以获取有关所有可用方法和属性的全面文档。
何时应使用 Micro 或RMQR代码? Micro 和RMQR代码在特定场景中表现出色: **微型二维码非常适合:** - 需要跟踪元件的电子电路板 - 需要患者或药物标识符的小型医疗设备 - 雕刻空间有限的珠宝鉴定 - 制造业中的微型产品标签 **RMQR代码最适合:** - 管子或管道上的窄幅运输标签 - 笔杆或工具上拉长的空格 - 横幅式营销材料 - 融入现有的矩形设计元素 下面是一个阅读不同 QR 代码类型的实用示例: ```csharp using IronBarcode; using IronSoftware.Drawing; public class MultiTypeQRReader { public static void ReadVariousQRTypes() { // Configure reader to handle all 二维码 types var options = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeType.QRCode | BarcodeType.MicroQRCode | BarcodeType.RectangularMicroQRCode }; string[] imagePaths = { "standard_qr.png", "micro_qr.png", "rectangular_qr.png" }; foreach (var path in imagePaths) { using (var image = Image.FromFile(path)) { var qrInput = new QrImageInput(image); var results = BarcodeReader.Read(qrInput, options); foreach (var qr in results.Barcodes) { Console.WriteLine($"Type: {qr.BarcodeType}"); Console.WriteLine($"Data: {qr.Value}"); Console.WriteLine($"Format: {qr.Format}"); Console.WriteLine("---"); } } } } } ``` 对于生产部署,请查看我们的[NuGet 软件包指南](https://ironsoftware.com/csharp/qr/get-started/nuget-packages/),以确保您拥有适合您平台的软件包,并查看[API 参考](https://ironsoftware.com/csharp/qr/object-reference/api/),以获取有关所有可用方法和属性的全面文档。
常见问题解答
IronQR 读取二维码支持哪些图像格式?
IronQR 支持从多种图像格式读取 QR 码,包括 JPEG、PNG、GIF、TIFF、BMP、WBMP、WebP、ICO、WMF 和 RawFormat。这种全面的格式支持由 IronDrawing 提供,让您无需进行格式转换即可处理各种来源的二维码。
如何在 C# 中从图像文件读取 QR 码?
要使用 IronQR 读取 QR 代码,首先要使用 Image.FromFile() 加载图像,从加载的图像中创建 QrImageInput 对象,然后使用 BarcodeReader.Read() 解码 QR 数据。该方法会返回结果,您可以遍历这些结果来访问每个检测到的 QR 代码信息。
什么技术可以在不同媒体类型中准确读取 QR 代码?
IronQR 使用先进的机器学习模型来确保不同媒体类型和图像格式的 QR 码解码准确无误。这种人工智能驱动的方法有助于在具有挑战性的图像条件下保持高准确性。
我能从一张图片中读取多个 QR 代码吗?
是的,IronQR 可以从一张图片中检测并读取多个 QR 代码。BarcodeReader.Read 方法会返回一个结果集合,允许您使用foreach 循环遍历每个检测到的 QR 代码,以访问单个 QR 代码数据。
IronQR 读取的二维码中可以存储哪些类型的数据?
IronQR 可以解码二维码中存储的各种类型的数据,包括纯文本、URL、联系方式和其他形式的结构化数据。解码后的信息可通过每个 BarcodeResult 对象的 Value 属性进行访问。






