IRONSOFTWAREHOME
USING IRONBARCODE

如何使用IronBarcode在 C# 中生成二维码

Curtis Chau
Curtis Chau
Updated: 2026年5月8日

IronBarcode使.NET开发人员能够使用其 QRCodeWriter 类高效地创建二维码。 它支持自定义徽标、颜色、多种输出格式以及跨平台部署,包括 Windows、Linux、macOS 和移动设备。

本指南演示如何使用IronBarcode为生产系统生成二维码。 IronBarcode 的 API 遵循.NET规范,同时提供Enterprise应用程序所需的性能和可靠性。 该库提供完整的文档,并支持在 Windows、Linux、macOS 和移动平台上部署。 如需全面了解所有功能,请浏览功能页面。 条形码快速入门指南提供可立即上手操作的示例,帮助您快速入门。

使用IronBarcode生成二​​维码有哪些好处?

为什么选择IronBarcode而不是其他库?

读取和写入20多种条码格式,包括UPC、EAN、Code 128和DataMatrix。 查看所有支持的格式。

如何使用IronBarcode生成二维码?

以下各节将演示遵循 SOLID 原则的生产就绪代码。 您将学习创建各种类型的二维码,实现自定义样式,并确保可靠的扫描性能。 该库的功能包括支持除二维码之外的一维和二维条形码。 对于更高级的场景,请查阅API 参考文档以获取完整的方法签名。 浏览演示视频,了解 IronBarcode 的实际功能。

如何创建一个新项目?

打开 Visual Studio,从"文件"菜单中选择**"新建项目"** 。 对于Enterprise部署,请考虑查看MSI 安装程序指南以进行自动安装。 入门概览提供了完整的设置说明。

选择控制台应用程序模板,然后单击"下一步"。

输入您喜欢的项目名称(例如二维码生成器),并指定项目位置。 点击**"下一步"** 。

从下拉列表中选择.NET Framework ( .NET 6.0(长期支持) ),然后单击"创建"。 IronBarcode支持所有现代.NET版本,详情请参阅兼容性文档。 有关具体的平台要求,请查看Blazor集成指南。

有哪些安装方法?

使用四种适用于不同工作流程的方法之一来安装IronBarcode 。 图书馆的现场演示展示了实时条形码识别功能。 如需快速测试,请查看条形码快速入门示例。

如何使用 Visual Studio 的包管理器 UI 进行安装?

转到**"工具"** > "NuGet包管理器" > "管理解决方案的NuGet包"……

或者在解决方案资源管理器中右键单击您的项目,然后选择**"管理NuGet程序包..."**

点击*"浏览"* ,搜索*"条形码"* ,选择*"IronBarcode"* ,选择您的项目,然后点击"安装"。 有关特定平台的安装,请参阅NuGet包指南。 如果遇到问题,请参阅NuGet故障排除指南。 该库支持多种部署方案,包括AWS Lambda和Azure Functions 。

如何使用软件包管理器控制台进行安装?

打开**"工具"** > "NuGet程序包管理器" > "程序包管理器控制台" ,然后运行:

PM > Install-Package BarCode

这会将库安装到您当前的项目中。 对于容器化部署,请遵循Docker 设置指南。 使用许可证密钥时,请确保针对您的部署环境进行正确配置。

如何从NuGet或IronBarcode网站下载?

从NuGet Gallery 网站下载或访问 IronBarcode 的主页获取最新的.NET条形码 DLL。 在解决方案资源管理器中,通过**"添加"** > **"引用"**将 DLL 添加到您的项目中。 要排查 DLL 问题,请参阅缺失 DLL 指南。 遇到运行时问题时,请参阅运行时复制异常指南。

如何创建和自定义二维码图像?

如何生成基本的二维码?

使用QRCodeWriter类中创建QR码。 有关完整示例,请参阅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;
}

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;
}

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");

WiFi 配置:

string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;";
var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500);
wifiQr.SaveAsPng("wifi-config.png");

IronBarcode处理国际字符的Unicode 支持,并支持Micro QR 和 rMQR等格式,适用于空间受限的应用。 对于特殊格式,请探索新的格式里程碑。 在使用特殊数据格式时,该库可以从流中读取数据并将其导出为流,从而实现高效的内存使用。

如何添加徽标和自定义样式?

使用CreateQrCodeWithLogo添加公司标志到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;
}

使用条形码自定义功能应用其他样式。 条形码样式功能提供完整的自定义选项:

// 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");

有哪些导出格式可供选择?

保存各种格式的二维码,以适应不同的使用场景。 了解更多信息,请参阅保存条形码示例和条形码图像生成器教程。 对于特殊要求,请参阅创建 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
}

有关 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");
}

对于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();
        }
    }
}

要将条形码导出为 HTML,请参阅创建条形码为 HTML 指南。 在 Web 应用程序中应用许可证时,请参阅web.config 许可证密钥指南。

二维码实施的最佳实践是什么?

我应该选择哪个纠错级别?

纠错能力会影响系统的韧性和容量。 有关详细信息,请参阅纠错指南。 该库包含机器学习置信度阈值,以提高准确率:

级别恢复使用案例
low7%清洁的数字环境
语言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;
}

如何确保移动设备兼容性?

通过条形码阅读器设置改进移动扫描。 如果遇到识别问题,请参阅条形码无法识别故障排除指南:

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;
}

对于跨平台移动开发,请探索.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);
}

生成产品标签二维码

创建用于库存管理的二维码。 有关处理特殊格式的信息,请参阅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");
}

对于特殊标签打印,请查看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);

在处理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();

IronBarcode支持通过.NET MAUI在AWS Lambda 、 Azure 、 Docker和移动平台上部署。 如需技术支持,请提交工程请求。 查看安全漏洞 CVE 披露信息,以满足Enterprise安全要求。

探索条形码读取功能,了解条形码识别的全部功能,包括支持读取 Code 39 条形码和其他特殊格式。 该库功能齐全,适用于需要可靠的条形码生成和扫描功能的Enterprise应用程序。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户