简介与安装
QRCoder 是一个纯 C#.NET 编写的开源库,无需任何外部依赖,兼容 .NET Framework、.NET Core、.NET Standard 和 .NET 版本,轻量易用。
安装方式:在 NuGet 控制台中运行:
PM> Install-Package QRCoder
快速导入项目进行使用。
基础二维码生成
仅需几行代码,即可生成二维码图片。示例代码如下:
using QRCoder;
using System.Drawing;
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Hello, QRCoder!", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save("qrcode.png", System.Drawing.Imaging.ImageFormat.Png);
以上代码完成了文本到二维码 PNG 图像的完整输出流程。
生成特殊用途二维码(URL、电话等)
QRCoder 支持直接编码 URL、电话号码等场景。比如:
// URL 二维码
var urlData = qrGenerator.CreateQrCode(new Url("https://example.com"), QRCodeGenerator.ECCLevel.Q);
// 电话号码二维码
var phoneData = qrGenerator.CreateQrCode(new PhoneNumber("+1234567890"), QRCodeGenerator.ECCLevel.Q);
这些类均继承自 Payload,方便生成对扫码设备识别更友好的二维码。
自定义样式设置
QRCoder 提供丰富的定制选项,支持设置颜色及容错等级:
错误纠正级别(ECCLevel):L(7%)、M(15%)、Q(25%)、H(30%)可按需调整,以提升二维码耐损性。
颜色定制:
byte[] image = new PngByteQRCode(qrCodeData)
.GetGraphic(20, Color.Red, Color.LightGray);
这段代码让二维码主体为红色,背景为浅灰色,便于品牌风格定制。
Web API 与 UI 集成示例
在 ASP.NET Core 或 MVC 项目中使用 QRCoder,可以将生成逻辑封装在 Controller 中,通过 API 返回图片或 Base64 字符串,方便前端展示。
例如,将二维码转换为 Base64,嵌入网页 <img> 标签:
var qrJson = new PngByteQRCode(qrCodeData).GetGraphic(20);
string base64 = Convert.ToBase64String(qrJson);
return $"<img src='data:image/png;base64,{base64}' />";
这类实现简洁明了,无需文件操作,即可动态生成二维码。
兼容性与未来维护性
QRCoder 零依赖、轻量,适用于多种项目类型。虽然部分用户反映在 .NET 6/7/8 上兼容性存在问题,但它仍然支持 .NETStandard 2.0,开发者可根据需要从源码自行编译适配。