USING IRONBARCODE 如何用 IronBarcode 在 C# 中生成 QR 码 Jordi Bardia 已更新:2026年1月18日 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 IronBarcode 使 .NET 开发人员能够使用其 QRCodeWriter 类高效地创建 QR 码。 它支持自定义徽标、颜色、多种输出格式以及跨平台部署,包括 Windows、Linux、macOS 和移动设备。 本指南演示如何使用IronBarcode为生产系统生成二维码。 IronBarcode 的 API 遵循 .NET 规范,同时提供企业应用程序所需的性能和可靠性。 该库提供完整的文档,并支持在 Windows、Linux、macOS 和移动平台上部署。 如需全面了解所有功能,请浏览功能页面。 条形码快速入门指南提供可立即上手操作的示例,帮助您快速入门。 使用 IronBarcode 生成二维码有哪些好处? 为什么选择 IronBarcode 而不是其他库? 可读取和写入 20 多种条形码格式,包括 UPC、EAN、Code 128 和DataMatrix 。 查看所有支持的格式。 使用校正滤波器对图像进行预处理,以提高精度。 包含针对不完美条形码的高级图像校正功能。 读取扫描件和视频帧,并自动进行图像方向校正。 使用多个核心进行批量处理,并支持异步处理。 学习异步读取条形码以获得更好的性能。 可自动查找多个条形码,并提供可自定义的读取器选项。 配置条形码阅读器设置以获得最佳效果。 支持 .NET Core 和 Framework 上的 32/64 位架构,具有跨平台兼容性。 可在 PC 和移动设备上运行: Android 、 iOS 、 macOS 、 Linux 。 请参阅服务器的Docker 设置指南。 生成多种格式的二维码,并提供多种输出选项。 支持生成多种格式的条形码。 如何使用IronBarcode生成二维码? 以下各节将演示遵循 SOLID 原则的生产就绪代码。 您将学习创建各种类型的二维码,实现自定义样式,并确保可靠的扫描性能。 该库的功能包括支持除二维码之外的一维和二维条形码。 对于更高级的场景,请查阅API 参考文档以获取完整的方法签名。 浏览演示视频,了解 IronBarcode 的实际功能。 如何创建一个新项目? 打开 Visual Studio,从"文件"菜单中选择"新建项目" 。 对于企业部署,请考虑查看MSI 安装程序指南以进行自动安装。 入门概览提供了完整的设置说明。 选择控制台应用程序模板,然后单击"下一步"。 输入您喜欢的项目名称(例如二维码生成器),并指定项目位置。 点击"下一步" 。 从下拉列表中选择 .NET Framework( .NET 6.0(长期支持) ),然后单击"创建"。 IronBarcode 支持所有现代 .NET 版本,详情请参阅兼容性文档。 有关具体的平台要求,请查看Blazor集成指南。 有哪些安装方法? 使用四种适用于不同工作流程的方法之一来安装 IronBarcode。 图书馆的现场演示展示了实时条形码识别功能。 如需快速测试,请查看条形码快速入门示例。 如何使用 Visual Studio 的包管理器 UI 进行安装? 转到"工具" > "NuGet 包管理器" > "管理解决方案的 NuGet 包"…… 或者在解决方案资源管理器中右键单击您的项目,然后选择"管理 NuGet 程序包..." 点击"浏览" ,搜索"条形码" ,选择"IronBarcode" ,选择您的项目,然后点击"安装"。 有关特定平台的安装,请参阅NuGet 包指南。 如果遇到问题,请参阅NuGet 故障排除指南。 该库支持多种部署方案,包括AWS Lambda和Azure Functions 。 如何使用软件包管理器控制台进行安装? 打开"工具" > "NuGet 程序包管理器" > "程序包管理器控制台" ,然后运行: Install-Package BarCode 这会将库安装到您当前的项目中。 对于容器化部署,请遵循Docker 设置指南。 使用许可证密钥时,请确保针对部署环境进行正确配置。 如何从 NuGet 或 IronBarcode 网站下载? 从 NuGet Gallery 网站下载或访问 IronBarcode 的主页获取最新的 .NET 条形码 DLL。 在解决方案资源管理器中,通过"添加" > "引用"将 DLL 添加到您的项目中。 要排查 DLL 问题,请参阅缺失 DLL 指南。 遇到运行时问题时,请参阅运行时复制异常指南。 如何创建和自定义二维码图像? 如何生成基本的二维码? 使用QRCodeWriter类的CreateQrCode方法创建二维码。 有关完整示例,请参阅C# 二维码生成器教程。 该库支持创建各种格式的条形码图像: using IronBarCode; // Basic QR code generation with medium error correction var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0); qrCode.SaveAsPng("MyQR.png"); // Generate QR code with automatic sizing and highest error correction var autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example"); autoQr.SaveAsJpeg("AutoQR.jpg"); // Production-ready QR code with validation public GeneratedBarcode CreateValidatedQrCode(string data, int size = 600) { if (string.IsNullOrWhiteSpace(data)) throw new ArgumentException("Data cannot be empty"); if (data.Length > 2953) // QR Code capacity at highest error correction throw new ArgumentException("Data exceeds QR code capacity"); var qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High); qr.VerifyQrCode(); // Verify the generated code is valid return qr; } using IronBarCode; // Basic QR code generation with medium error correction var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0); qrCode.SaveAsPng("MyQR.png"); // Generate QR code with automatic sizing and highest error correction var autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example"); autoQr.SaveAsJpeg("AutoQR.jpg"); // Production-ready QR code with validation public GeneratedBarcode CreateValidatedQrCode(string data, int size = 600) { if (string.IsNullOrWhiteSpace(data)) throw new ArgumentException("Data cannot be empty"); if (data.Length > 2953) // QR Code capacity at highest error correction throw new ArgumentException("Data exceeds QR code capacity"); var qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High); qr.VerifyQrCode(); // Verify the generated code is valid return qr; } Imports IronBarCode ' Basic QR code generation with medium error correction Dim qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0) qrCode.SaveAsPng("MyQR.png") ' Generate QR code with automatic sizing and highest error correction Dim autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example") autoQr.SaveAsJpeg("AutoQR.jpg") ' Production-ready QR code with validation Public Function CreateValidatedQrCode(data As String, Optional size As Integer = 600) As GeneratedBarcode If String.IsNullOrWhiteSpace(data) Then Throw New ArgumentException("Data cannot be empty") End If If data.Length > 2953 Then ' QR Code capacity at highest error correction Throw New ArgumentException("Data exceeds QR code capacity") End If Dim qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High) qr.VerifyQrCode() ' Verify the generated code is valid Return qr End Function $vbLabelText $csharpLabel CreateQrCode方法接受以下参数: 必填:要编码的数据(字符串或流) 可选:图形尺寸(默认 500x500 像素) 可选:纠错级别(低 7%,中 15%,高 25%,最高 30%) 可选:二维码版本号(0 表示自动) 对于高性能批量处理,请使用异步操作和自定义样式。 在不完美条件下工作时,请使用容错功能。 条形码读取教程演示了如何验证生成的条形码。 我可以在二维码中编码哪些数据类型? 生产应用中常见的二维码数据类型包括从各种来源创建条形码。 有关详细示例,请参阅创建二维码示例。 IronBarcode支持Unicode条形码,用于国际字符编码: URL二维码: // Generate QR code for website URL var urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800); urlQr.SetMargins(10); // Add quiet zone urlQr.SaveAsPng("campaign-qr.png"); // Advanced URL QR code with tracking public GeneratedBarcode CreateTrackableUrlQr(string baseUrl, Dictionary<string, string> utmParams) { var uriBuilder = new UriBuilder(baseUrl); var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query); foreach (var param in utmParams) query[param.Key] = param.Value; uriBuilder.Query = query.ToString(); var qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000); return qr; } // Generate QR code for website URL var urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800); urlQr.SetMargins(10); // Add quiet zone urlQr.SaveAsPng("campaign-qr.png"); // Advanced URL QR code with tracking public GeneratedBarcode CreateTrackableUrlQr(string baseUrl, Dictionary<string, string> utmParams) { var uriBuilder = new UriBuilder(baseUrl); var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query); foreach (var param in utmParams) query[param.Key] = param.Value; uriBuilder.Query = query.ToString(); var qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000); return qr; } Imports System Imports System.Collections.Generic Imports System.Web ' Generate QR code for website URL Dim urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800) urlQr.SetMargins(10) ' Add quiet zone urlQr.SaveAsPng("campaign-qr.png") ' Advanced URL QR code with tracking Public Function CreateTrackableUrlQr(baseUrl As String, utmParams As Dictionary(Of String, String)) As GeneratedBarcode Dim uriBuilder = New UriBuilder(baseUrl) Dim query = HttpUtility.ParseQueryString(uriBuilder.Query) For Each param In utmParams query(param.Key) = param.Value Next uriBuilder.Query = query.ToString() Dim qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000) Return qr End Function $vbLabelText $csharpLabel vCard 联系信息: string vCard = @"BEGIN:VCARD VERSION:3.0 FN:John Smith ORG:Tech Corp TEL:+1-555-0123 EMAIL:john@example.com END:VCARD"; var contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium); contactQr.SaveAsPng("contact-card.png"); string vCard = @"BEGIN:VCARD VERSION:3.0 FN:John Smith ORG:Tech Corp TEL:+1-555-0123 EMAIL:john@example.com END:VCARD"; var contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium); contactQr.SaveAsPng("contact-card.png"); Dim vCard As String = "BEGIN:VCARD" & vbCrLf & _ "VERSION:3.0" & vbCrLf & _ "FN:John Smith" & vbCrLf & _ "ORG:Tech Corp" & vbCrLf & _ "TEL:+1-555-0123" & vbCrLf & _ "EMAIL:john@example.com" & vbCrLf & _ "END:VCARD" Dim contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium) contactQr.SaveAsPng("contact-card.png") $vbLabelText $csharpLabel WiFi配置: string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;"; var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500); wifiQr.SaveAsPng("wifi-config.png"); string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;"; var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500); wifiQr.SaveAsPng("wifi-config.png"); Dim wifiConfig As String = "WIFI:T:WPA;S:NetworkName;P:Password123;;" Dim wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500) wifiQr.SaveAsPng("wifi-config.png") $vbLabelText $csharpLabel IronBarcode 处理国际字符的Unicode 支持,并支持Micro QR 和 rMQR等格式,适用于空间受限的应用。 对于特殊格式,请探索新的格式里程碑。 在使用特殊数据格式时,该库可以从流中读取数据并将其导出为流,从而实现高效的内存使用。 如何添加徽标和自定义样式? 使用CreateQrCodeWithLogo将公司徽标添加到二维码中。 有关完整的样式选项,请参阅自定义二维码示例和二维码样式指南。 该库还支持所有条形码类型的通用条形码样式: // Create QR code with embedded logo var qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500); qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed); qrWithLogo.SaveAsPng("Logo_QR_Code.png"); // Advanced logo customization var logo = new QRCodeLogo("company-logo.png") { Width = 100, Height = 100, CornerRadius = 5 }; var advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600); // Production-ready branded QR code public GeneratedBarcode CreateBrandedQrCode(string data, string logoPath, string brandColor) { var logo = new QRCodeLogo(logoPath) { Width = 80, Height = 80, CornerRadius = 10 }; var qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800); qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor)); qr.SetMargins(15); return qr; } // Create QR code with embedded logo var qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500); qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed); qrWithLogo.SaveAsPng("Logo_QR_Code.png"); // Advanced logo customization var logo = new QRCodeLogo("company-logo.png") { Width = 100, Height = 100, CornerRadius = 5 }; var advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600); // Production-ready branded QR code public GeneratedBarcode CreateBrandedQrCode(string data, string logoPath, string brandColor) { var logo = new QRCodeLogo(logoPath) { Width = 80, Height = 80, CornerRadius = 10 }; var qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800); qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor)); qr.SetMargins(15); return qr; } Imports System.Drawing ' Create QR code with embedded logo Dim qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500) qrWithLogo.ChangeBarCodeColor(Color.DarkRed) qrWithLogo.SaveAsPng("Logo_QR_Code.png") ' Advanced logo customization Dim logo As New QRCodeLogo("company-logo.png") With { .Width = 100, .Height = 100, .CornerRadius = 5 } Dim advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600) ' Production-ready branded QR code Public Function CreateBrandedQrCode(data As String, logoPath As String, brandColor As String) As GeneratedBarcode Dim logo As New QRCodeLogo(logoPath) With { .Width = 80, .Height = 80, .CornerRadius = 10 } Dim qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800) qr.ChangeBarCodeColor(ColorTranslator.FromHtml(brandColor)) qr.SetMargins(15) Return qr End Function $vbLabelText $csharpLabel 使用条形码自定义功能应用其他样式。 条形码样式功能提供完整的自定义选项: // Use HTML color codes for brand colors qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000")); qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray); qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME"); qrWithLogo.AddAnnotationTextBelowBarcode("Company Name"); // Use HTML color codes for brand colors qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000")); qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray); qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME"); qrWithLogo.AddAnnotationTextBelowBarcode("Company Name"); ' Use HTML color codes for brand colors qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000")) qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray) qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME") qrWithLogo.AddAnnotationTextBelowBarcode("Company Name") $vbLabelText $csharpLabel 有哪些导出格式可供选择? 保存各种格式的二维码,以适应不同的使用场景。 了解更多信息,请参阅保存条形码示例和条形码图像生成器教程。 对于特殊要求,请参阅创建 1-BPP 条形码图像的指南: // Image formats qrWithLogo.SaveAsJpeg("qr.jpg"); qrWithLogo.SaveAsPng("qr.png"); qrWithLogo.SaveAsGif("qr.gif"); qrWithLogo.SaveAsTiff("qr.tiff"); // Web formats qrWithLogo.SaveAsHtmlFile("qr.html"); string dataUrl = qrWithLogo.ToDataUrl(); // Print formats qrWithLogo.SaveAsPdf("qr.pdf"); qrWithLogo.ChangeBarcodeDpi(300); // API formats byte[] qrBytes = qrWithLogo.ToPngBinaryData(); var stream = qrWithLogo.ToStream(); // High-quality print export public void ExportForPrint(GeneratedBarcode qr, string filename) { qr.ChangeBarcodeDpi(600); // 高的 DPI for print qr.ResizeTo(2000, 2000); // Large size qr.SaveAsTiff(filename); // Lossless format } // Image formats qrWithLogo.SaveAsJpeg("qr.jpg"); qrWithLogo.SaveAsPng("qr.png"); qrWithLogo.SaveAsGif("qr.gif"); qrWithLogo.SaveAsTiff("qr.tiff"); // Web formats qrWithLogo.SaveAsHtmlFile("qr.html"); string dataUrl = qrWithLogo.ToDataUrl(); // Print formats qrWithLogo.SaveAsPdf("qr.pdf"); qrWithLogo.ChangeBarcodeDpi(300); // API formats byte[] qrBytes = qrWithLogo.ToPngBinaryData(); var stream = qrWithLogo.ToStream(); // High-quality print export public void ExportForPrint(GeneratedBarcode qr, string filename) { qr.ChangeBarcodeDpi(600); // 高的 DPI for print qr.ResizeTo(2000, 2000); // Large size qr.SaveAsTiff(filename); // Lossless format } ' Image formats qrWithLogo.SaveAsJpeg("qr.jpg") qrWithLogo.SaveAsPng("qr.png") qrWithLogo.SaveAsGif("qr.gif") qrWithLogo.SaveAsTiff("qr.tiff") ' Web formats qrWithLogo.SaveAsHtmlFile("qr.html") Dim dataUrl As String = qrWithLogo.ToDataUrl() ' Print formats qrWithLogo.SaveAsPdf("qr.pdf") qrWithLogo.ChangeBarcodeDpi(300) ' API formats Dim qrBytes As Byte() = qrWithLogo.ToPngBinaryData() Dim stream = qrWithLogo.ToStream() ' High-quality print export Public Sub ExportForPrint(qr As GeneratedBarcode, filename As String) qr.ChangeBarcodeDpi(600) ' 高的 DPI for print qr.ResizeTo(2000, 2000) ' Large size qr.SaveAsTiff(filename) ' Lossless format End Sub $vbLabelText $csharpLabel 有关 PDF 的特定操作,请参阅有关在 PDF 中创建条形码和在现有 PDF 上添加条形码的指南。 从 PDF 读取条形码时,请使用PDF 条形码阅读器设置以获得最佳效果。 如何在Web应用程序中实现二维码? 对于 ASP.NET MVC 应用程序,实现无文件 I/O 的流式传输。 该库支持创建 HTML 条形码,以便直接集成到 Web 中: public IActionResult GetQrCode(string data) { var qr = QRCodeWriter.CreateQrCode(data, 400); byte[] qrBytes = qr.ToPngBinaryData(); return File(qrBytes, "image/png", "qrcode.png"); } // Stream directly without disk I/O public IActionResult StreamQrCode(string content) { var qr = QRCodeWriter.CreateQrCode(content, 500); var stream = qr.ToStream(); return File(stream, "image/png"); } // Generate HTML-embedded QR codes public IActionResult GetHtmlQrCode(string data) { var qr = QRCodeWriter.CreateQrCode(data, 400); var htmlString = qr.ToHtmlTag(); return Content(htmlString, "text/html"); } public IActionResult GetQrCode(string data) { var qr = QRCodeWriter.CreateQrCode(data, 400); byte[] qrBytes = qr.ToPngBinaryData(); return File(qrBytes, "image/png", "qrcode.png"); } // Stream directly without disk I/O public IActionResult StreamQrCode(string content) { var qr = QRCodeWriter.CreateQrCode(content, 500); var stream = qr.ToStream(); return File(stream, "image/png"); } // Generate HTML-embedded QR codes public IActionResult GetHtmlQrCode(string data) { var qr = QRCodeWriter.CreateQrCode(data, 400); var htmlString = qr.ToHtmlTag(); return Content(htmlString, "text/html"); } Public Function GetQrCode(data As String) As IActionResult Dim qr = QRCodeWriter.CreateQrCode(data, 400) Dim qrBytes As Byte() = qr.ToPngBinaryData() Return File(qrBytes, "image/png", "qrcode.png") End Function ' Stream directly without disk I/O Public Function StreamQrCode(content As String) As IActionResult Dim qr = QRCodeWriter.CreateQrCode(content, 500) Dim stream = qr.ToStream() Return File(stream, "image/png") End Function ' Generate HTML-embedded QR codes Public Function GetHtmlQrCode(data As String) As IActionResult Dim qr = QRCodeWriter.CreateQrCode(data, 400) Dim htmlString As String = qr.ToHtmlTag() Return Content(htmlString, "text/html") End Function $vbLabelText $csharpLabel 对于Blazor 应用,实现响应式二维码生成: @page "/qrcode" @using IronBarCode <input @bind="qrText" placeholder="Enter text" /> <button @onclick="GenerateQr">Generate</button> @if (!string.IsNullOrEmpty(QrCodeDataUrl)) { <img src="@QrCodeDataUrl" alt="QR Code" /> } @code { private string qrText = ""; private string QrCodeDataUrl = ""; private void GenerateQr() { if (!string.IsNullOrEmpty(qrText)) { var qr = QRCodeWriter.CreateQrCode(qrText, 400); QrCodeDataUrl = qr.ToDataUrl(); } } } @page "/qrcode" @using IronBarCode <input @bind="qrText" placeholder="Enter text" /> <button @onclick="GenerateQr">Generate</button> @if (!string.IsNullOrEmpty(QrCodeDataUrl)) { <img src="@QrCodeDataUrl" alt="QR Code" /> } @code { private string qrText = ""; private string QrCodeDataUrl = ""; private void GenerateQr() { if (!string.IsNullOrEmpty(qrText)) { var qr = QRCodeWriter.CreateQrCode(qrText, 400); QrCodeDataUrl = qr.ToDataUrl(); } } } @page "/qrcode" @Imports IronBarCode <input @bind="qrText" placeholder="Enter text" /> <button @onclick="GenerateQr">Generate</button> @if Not String.IsNullOrEmpty(QrCodeDataUrl) Then <img src="@QrCodeDataUrl" alt="QR Code" /> End If @Code Private qrText As String = "" Private QrCodeDataUrl As String = "" Private Sub GenerateQr() If Not String.IsNullOrEmpty(qrText) Then Dim qr = QRCodeWriter.CreateQrCode(qrText, 400) QrCodeDataUrl = qr.ToDataUrl() End If End Sub End Code $vbLabelText $csharpLabel 要将条形码导出为 HTML,请参阅创建条形码为 HTML 指南。 在 Web 应用程序中应用许可证时,请参阅web.config 许可证密钥指南。 二维码实施的最佳实践是什么? 我应该选择哪个纠错级别? 纠错能力会影响韧性和容量。 有关详细信息,请参阅纠错指南。 该库包含机器学习置信度阈值,以提高准确率: 级别 恢复 使用案例 低 7% 清洁的数字环境 语言 15% 印刷材料、名片 高的 25% 户外标牌、手拿物品 最高 30% 工业用途,添加标识 我的二维码应该有多大? 根据扫描距离计算最佳尺寸。 了解如何设置边距以提高扫描效果。 以下边距设置示例展示了最佳实践: // 1:10 ratio - 1cm QR per 10cm distance int CalculateQrSize(double scanDistanceMeters) { int sizeInCm = (int)(scanDistanceMeters * 10); return (int)(sizeInCm * 37.8); // Convert to pixels at 96 DPI } // Set appropriate margins for reliable scanning public GeneratedBarcode CreateScanOptimizedQr(string data, int scanDistance) { int size = CalculateQrSize(scanDistance); var qr = QRCodeWriter.CreateQrCode(data, size); qr.SetMargins(size / 20); // 5% margin return qr; } // 1:10 ratio - 1cm QR per 10cm distance int CalculateQrSize(double scanDistanceMeters) { int sizeInCm = (int)(scanDistanceMeters * 10); return (int)(sizeInCm * 37.8); // Convert to pixels at 96 DPI } // Set appropriate margins for reliable scanning public GeneratedBarcode CreateScanOptimizedQr(string data, int scanDistance) { int size = CalculateQrSize(scanDistance); var qr = QRCodeWriter.CreateQrCode(data, size); qr.SetMargins(size / 20); // 5% margin return qr; } ' 1:10 ratio - 1cm QR per 10cm distance Private Function CalculateQrSize(scanDistanceMeters As Double) As Integer Dim sizeInCm As Integer = CInt(scanDistanceMeters * 10) Return CInt(sizeInCm * 37.8) ' Convert to pixels at 96 DPI End Function ' Set appropriate margins for reliable scanning Public Function CreateScanOptimizedQr(data As String, scanDistance As Integer) As GeneratedBarcode Dim size As Integer = CalculateQrSize(scanDistance) Dim qr = QRCodeWriter.CreateQrCode(data, size) qr.SetMargins(size / 20) ' 5% margin Return qr End Function $vbLabelText $csharpLabel 如何确保移动设备兼容性? 通过条形码阅读器设置改进移动扫描。 如果遇到识别问题,请参阅条形码无法识别故障排除指南: public GeneratedBarcode CreateMobileOptimizedQr(string data) { var qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SetMargins(20); // Adequate quiet zone qr.ChangeBarCodeColor(System.Drawing.Color.Black); qr.ChangeBackgroundColor(System.Drawing.Color.White); return qr; } public GeneratedBarcode CreateMobileOptimizedQr(string data) { var qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SetMargins(20); // Adequate quiet zone qr.ChangeBarCodeColor(System.Drawing.Color.Black); qr.ChangeBackgroundColor(System.Drawing.Color.White); return qr; } Public Function CreateMobileOptimizedQr(ByVal data As String) As GeneratedBarcode Dim qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium) qr.SetMargins(20) ' Adequate quiet zone qr.ChangeBarCodeColor(System.Drawing.Color.Black) qr.ChangeBackgroundColor(System.Drawing.Color.White) Return qr End Function $vbLabelText $csharpLabel 对于跨平台移动开发,请探索.NET MAUI 条形码扫描器教程。 该库原生支持iOS和Android平台。## 常见集成场景 创建营销活动二维码 要实现带有自定义品牌标识的可追踪营销二维码,请参阅条形码读取速度管理指南: public GeneratedBarcode CreateCampaignQr(string campaignId, string userId) { string trackingUrl = "___PROTECTED_URL_79___"; var qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000); qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A")); qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}"); return qr; } // Batch generate campaign materials public async Task GenerateCampaignBatch(List<string> userIds, string campaignId) { var tasks = userIds.Select(async userId => { var qr = CreateCampaignQr(campaignId, userId); await Task.Run(() => qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png")); }); await Task.WhenAll(tasks); } public GeneratedBarcode CreateCampaignQr(string campaignId, string userId) { string trackingUrl = "___PROTECTED_URL_79___"; var qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000); qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A")); qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}"); return qr; } // Batch generate campaign materials public async Task GenerateCampaignBatch(List<string> userIds, string campaignId) { var tasks = userIds.Select(async userId => { var qr = CreateCampaignQr(campaignId, userId); await Task.Run(() => qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png")); }); await Task.WhenAll(tasks); } Imports System.Drawing Imports System.Threading.Tasks Public Class BarcodeGenerator Public Function CreateCampaignQr(campaignId As String, userId As String) As GeneratedBarcode Dim trackingUrl As String = "___PROTECTED_URL_79___" Dim qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000) qr.ChangeBarCodeColor(ColorTranslator.FromHtml("#1E3A8A")) qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}") Return qr End Function ' Batch generate campaign materials Public Async Function GenerateCampaignBatch(userIds As List(Of String), campaignId As String) As Task Dim tasks = userIds.Select(Async Function(userId) Dim qr = CreateCampaignQr(campaignId, userId) Await Task.Run(Sub() qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png")) End Function) Await Task.WhenAll(tasks) End Function End Class $vbLabelText $csharpLabel 生成产品标签二维码 创建用于库存管理的二维码。 有关处理特殊格式的信息,请参阅GS1-128 故障排除指南。 使用特定类型的条形码(例如Code 39或MSI 条形码)时,请参考特定格式的指南: public void GenerateProductLabel(Product product) { var productData = new { sku = product.SKU, batch = product.BatchNumber, expiry = product.ExpiryDate.ToString("yyyy-MM-dd") }; string json = System.Text.Json.JsonSerializer.Serialize(productData); var qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High); qr.AddAnnotationTextAboveBarcode(product.Name); qr.SaveAsPng($"labels/product-{product.SKU}.png"); } // Generate 1-BPP labels for thermal printers public void GenerateThermalLabel(Product product) { var qr = CreateProductQr(product); qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png"); } public void GenerateProductLabel(Product product) { var productData = new { sku = product.SKU, batch = product.BatchNumber, expiry = product.ExpiryDate.ToString("yyyy-MM-dd") }; string json = System.Text.Json.JsonSerializer.Serialize(productData); var qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High); qr.AddAnnotationTextAboveBarcode(product.Name); qr.SaveAsPng($"labels/product-{product.SKU}.png"); } // Generate 1-BPP labels for thermal printers public void GenerateThermalLabel(Product product) { var qr = CreateProductQr(product); qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png"); } Public Sub GenerateProductLabel(product As Product) Dim productData = New With { .sku = product.SKU, .batch = product.BatchNumber, .expiry = product.ExpiryDate.ToString("yyyy-MM-dd") } Dim json As String = System.Text.Json.JsonSerializer.Serialize(productData) Dim qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High) qr.AddAnnotationTextAboveBarcode(product.Name) qr.SaveAsPng($"labels/product-{product.SKU}.png") End Sub ' Generate 1-BPP labels for thermal printers Public Sub GenerateThermalLabel(product As Product) Dim qr = CreateProductQr(product) qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png") End Sub $vbLabelText $csharpLabel 对于特殊标签打印,请查看1-BPP 条形码图像指南。 阅读多页文档时,请参阅多页 GIF 和 TIFF 指南。 提高条形码扫描性能 对于大批量扫描应用,实施作物区域以限制扫描区域并提高性能。 读取速度选项可对精度和速度之间的权衡进行精细控制: // Define crop region for faster scanning var cropRegion = new Rectangle(100, 100, 300, 300); var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Faster, ExpectBarcodeTypes = BarcodeEncoding.QRCode, CropArea = cropRegion }; var results = BarcodeReader.Read("image.png", options); // Define crop region for faster scanning var cropRegion = new Rectangle(100, 100, 300, 300); var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Faster, ExpectBarcodeTypes = BarcodeEncoding.QRCode, CropArea = cropRegion }; var results = BarcodeReader.Read("image.png", options); ' Define crop region for faster scanning Dim cropRegion As New Rectangle(100, 100, 300, 300) Dim options As New BarcodeReaderOptions With { .Speed = ReadingSpeed.Faster, .ExpectBarcodeTypes = BarcodeEncoding.QRCode, .CropArea = cropRegion } Dim results = BarcodeReader.Read("image.png", options) $vbLabelText $csharpLabel 在使用System.Drawing 对象时,该库通过IronDrawing提供跨平台兼容性。 要点总结 IronBarcode 为 .NET 应用程序提供完整的二维码生成解决方案。 该库提供直观的 API、丰富的文档和可用于生产环境的功能,包括容错性、跨平台支持和性能优化。 通过更新日志了解最新功能。 对于注重安全性的部署,请查看安全 CVE 披露信息。 请在许可页面查找许可信息。 IronBarcode 提供免费的开发者许可证,并提供包括支持和更新在内的高级选项。 对于现有客户,请了解许可证延期和升级选项。 如果您需要有关许可方面的帮助,请参阅许可证密钥申请指南和web.config 许可设置。 对于生产环境部署,请参考AWS Lambda 、 Azure Functions和Docker 容器的相关指南。 要排查具体的部署问题,请参阅AWS Lambda 运行时指南和运行时复制异常解决方案。 如果遇到误报,请查阅详细的故障排除指南。 如需技术支持,请提交工程请求。 该库会定期进行更新,如产品更新部分所示,以确保持续的兼容性和新功能。 快速入门二维码示例 只需几行代码即可生成具有自定义样式的二维码。 如需更多示例,请访问创建条形码示例,并探索读取条形码教程,以获取完整的条形码解决方案。 其他示例包括从 PDF 读取条形码和从数据创建条形码: using IronBarCode; // Create QR code with custom size and error correction var qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High); // Add styling qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy); qrCode.AddBarcodeValueTextBelowBarcode(); // Save as image qrCode.SaveAsPng("quickstart-qr.png"); // Export for API byte[] pngBytes = qrCode.ToPngBinaryData(); using IronBarCode; // Create QR code with custom size and error correction var qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High); // Add styling qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy); qrCode.AddBarcodeValueTextBelowBarcode(); // Save as image qrCode.SaveAsPng("quickstart-qr.png"); // Export for API byte[] pngBytes = qrCode.ToPngBinaryData(); Imports IronBarCode ' Create QR code with custom size and error correction Dim qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High) ' Add styling qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy) qrCode.AddBarcodeValueTextBelowBarcode() ' Save as image qrCode.SaveAsPng("quickstart-qr.png") ' Export for API Dim pngBytes As Byte() = qrCode.ToPngBinaryData() $vbLabelText $csharpLabel IronBarcode 支持通过.NET MAUI在AWS Lambda 、 Azure 、 Docker和移动平台上部署。 如需技术支持,请提交工程请求。 查看安全漏洞 CVE 披露信息,以满足企业安全要求。 探索条形码读取功能,了解条形码识别的全部功能,包括支持读取 Code 39 条形码和其他特殊格式。 该库功能齐全,适用于需要可靠的条形码生成和扫描功能的企业应用程序。 常见问题解答 如何在 .NET 应用程序中生成 QR 代码? 您可以通过使用 IronBarcode 中的 QRCodeWriter.CreateQrCode 方法在 .NET 应用程序中生成二维码。该方法允许您指定二维码数据、大小和错误校正级别。 QR 代码有哪些可用的自定义选项? IronBarcode 允许对 QR 代码进行自定义,包括更改颜色和嵌入公司徽标等图像。这些功能增强了 QR 代码的视觉吸引力和品牌集成。 如何在我的项目中安装 IronBarcode 库? 您可以通过 Visual Studio 的 NuGet 包管理器 UI、包管理器控制台或从 NuGet 网站下载,将 IronBarcode 安装到您的项目中。 IronBarcode可用于从视频帧中读取条码吗? 是的,IronBarcode 可以处理视频帧,允许通过修正旋转和噪声以实时读取条形码,从而提高条形码读取效率。 使用 IronBarcode 生成的 QR 代码可以保存为哪些文件格式? 使用 IronBarcode 生成的 QR 代码可以以多种格式保存,包括 PNG 和 HTML,为不同的应用程序需求提供灵活性。 IronBarcode 是否适用于控制台和网络应用程序? 是的,IronBarcode 兼具灵活性,可以在控制台和 .NET MVC 网络应用程序中使用,是各种开发环境的强大选择。 IronBarcode 中的 QR 代码有哪些纠错级别可用? IronBarcode 支持四个级别的QR代码纠错:低、中、高和最高,确保即使QR代码损坏也能保持数据完整性。 IronBarcode 的许可选项是什么? IronBarcode 提供了一个免费开发者许可证和一个包含额外支持和更新的高级版本,以满足不同的开发和业务需求。 IronBarcode 是否兼容 .NET Core 和 .NET Framework? 是的,IronBarcode 兼容 .NET Core 和 .NET Framework,支持包括32位和64位系统在内的各种体系结构。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已更新2026年1月22日 ASP.NET 条码扫描器教程:C# BarCode 生成器指南 Learn how to Scan Barcodes in ASP.NET using IronBarcode 阅读更多 已发布2026年1月21日 C# 中的数据矩阵生成器:IronBarcode 完整指南 数据矩阵生成器C#教程。了解如何使用IronBarcode创建ECC200数据矩阵条形码。简单的2D条码生成代码示例。 阅读更多 已发布2026年1月21日 使用 IronBarcode 的 Xamarin 条码生成器创建专业品质的条码 Learn how to create professional-quality barcodes with the Xamarin Barcode Generator using IronBarcode. 阅读更多 C# Barcode Scanner Step-by-Step TutorialHow to Generate QR Code in C# Windo...
已更新2026年1月22日 ASP.NET 条码扫描器教程:C# BarCode 生成器指南 Learn how to Scan Barcodes in ASP.NET using IronBarcode 阅读更多
已发布2026年1月21日 C# 中的数据矩阵生成器:IronBarcode 完整指南 数据矩阵生成器C#教程。了解如何使用IronBarcode创建ECC200数据矩阵条形码。简单的2D条码生成代码示例。 阅读更多
已发布2026年1月21日 使用 IronBarcode 的 Xamarin 条码生成器创建专业品质的条码 Learn how to create professional-quality barcodes with the Xamarin Barcode Generator using IronBarcode. 阅读更多