|

.NET C# QRCoder 使用全面指南:从安装入门到高级自定义二维码生成

简介与安装

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,开发者可根据需要从源码自行编译适配。

评论