在 .NET Core 或 .NET 8 环境中,生成二维码(QR Code)是许多项目都会遇到的需求,比如用于分享链接、手机联系方式、两步认证等。本文推荐三款常见且实用的 C# 二维码生成库,并对各自特点进行详尽解析,助你快速上手并选择最适合的方案。
QRCoder:纯 C# 实现、轻量开源
QRCoder 是一个完全用 C# 编写的开源库,无需依赖外部组件,非常适合跨平台 .NET Core 使用。该库支持 ISO/IEC 18004 标准,生成 URL、文本、电话号码、vCard 等多种类型的二维码内容,并可自定义颜色、尺寸、容错等级(ECCLevel)等。
使用示例非常简单,只需几行代码即可生成 PNG 或 Base64 字符串:
var qr = new QRCodeGenerator();
var data = qr.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.Q);
var png = new PngByteQRCode(data).GetGraphic(20);
QRCoder 性能优异,在批量生成二维码或服务端渲染时表现出色。用户社区反馈其速度快、稳定性高,但在 Windows 环境下实现带图标的二维码时略有限制。
ZXing.Net:广泛支持、多格式兼容
ZXing.Net(即 ZXing C# 移植版)是一个成熟的条码与二维码处理库,支持生成和识别多种格式(如 QR、EAN、Code128 等)。如果项目不仅仅需要二维码生成,还希望兼容扫描识别功能,ZXing.Net 是不错的选择。
不过 ZXing.Net 自带的二维码生成 API 较为基础,不支持 logo 或复杂样式。若要实现带 logo 的二维码,需手动将 logo 叠加到生成后的图像上,灵活但相对复杂。
IronBarcode(或 IronQR):商业授权、功能丰富
IronBarcode(也称 IronQR)是一个商业级 .NET 条码生成库,支持 QR 码及多个 barcode 类型。它兼容 .NET Core、.NET Standard,以及 .NET Framework,跨平台表现良好。
IronBarcode 支持自定义 logo、颜色、大小等高级特性,生成速度快且稳定。但需付费授权,适用于对商业支持、性能和定制需求有高要求的项目。
开发者社区指出,在简单二维码生成场景下,IronBarcode 生成速度很快,但如果加入颜色或 logo 后性能可能下降;而 QRCoder 在生成纯二维码时速度非常快,但处理复杂样式时功能有限。
三者对比
QRCoder:免费、开源、轻量、使用简单,适合绝大多数基本二维码生成需求。强烈推荐。
ZXing.Net:支持多种编码、扫描与生成一体,如果需要二维码识别功能或兼容更多格式可选。
IronBarcode:商业库,功能强大、支持 logo、样式丰富,但需要授权,适合高级定制需求。
使用建议
在 ASP.NET Core/.NET 8 QRCoder NuGet 包(例如 Install-Package QRCoder),并结合 System.Drawing.Common 渲染图像或输出 Base64 字符串用于前端展示。
若需将二维码做为身份验证(TOTP)初始化环节,也可以结合 QRCoder 生成 URI 并嵌入到网页中。
对于大型业务系统,若日后需要识别用户上传二维码或生成多种条码类型,ZXing.Net 或 IronBarcode 提供更广泛的功能支持。
总之,QRCoder 是最为主流且易用的 .NET Core C# 二维码生成库;ZXing.Net 更侧重多格式兼容与识别;IronBarcode 则适合对定制化和商业支持有需求的场景。