安装
通过 NuGet 包管理器安装 QRCoder。
NuGet
dotnet add package QRCoderPackage Manager
Install-Package QRCoder使用 QRCoder 生成二维码
在 C# 中使用 QRCoder 库的代码示例。
Basic QR Code with QRCoder
using QRCoder;
var qrGenerator = new QRCodeGenerator();
var qrData = qrGenerator.CreateQrCode("https://qrcode.fun",
QRCodeGenerator.ECCLevel.Q);
// PNG output
var qrCode = new PngByteQRCode(qrData);
byte[] pngBytes = qrCode.GetGraphic(20);
File.WriteAllBytes("qrcode.png", pngBytes);SVG Output
using QRCoder;
var qrGenerator = new QRCodeGenerator();
var qrData = qrGenerator.CreateQrCode("https://qrcode.fun",
QRCodeGenerator.ECCLevel.Q);
var svgQrCode = new SvgQRCode(qrData);
string svgString = svgQrCode.GetGraphic(20,
"#1A2B3C", "#FFFFFF");
File.WriteAllText("qrcode.svg", svgString);ASP.NET Core Endpoint
app.MapGet("/qr", (string data) =>
{
var qrGenerator = new QRCodeGenerator();
var qrData = qrGenerator.CreateQrCode(data,
QRCodeGenerator.ECCLevel.Q);
var qrCode = new PngByteQRCode(qrData);
byte[] png = qrCode.GetGraphic(20);
return Results.File(png, "image/png");
});QRCode.fun API
通过 API 在 C# 中生成二维码
使用 HttpClient 从 C# 调用 QRCode.fun API 生成样式化二维码。
C# API 集成
using System.Net.Http.Json;
var client = new HttpClient();
var payload = new {
data = "https://qrcode.fun",
width = 300,
height = 300,
type = "png",
margin = 10,
dotsOptions = new { color = "#1A2B3C", type = "rounded" },
cornersSquareOptions = new { color = "#8564C3", type = "extra-rounded" },
backgroundOptions = new { color = "#FFFFFF" }
};
var response = await client.PostAsJsonAsync(
"https://qrcode.fun/api/generate-qr-styled", payload);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result.GetProperty("data").GetString()?[..50]);实时二维码预览
立即尝试使用 C# 生成二维码。
二维码预览
原生库 vs API
比较使用 QRCoder 与 QRCode.fun API。
| 功能 | QRCoder | QRCode.fun API |
|---|---|---|
| 设置复杂度 | NuGet 安装 | 通过 HttpClient 发送单次 HTTP 请求 |
| 自定义 | 颜色、徽标、形状(ArtQRCode) | 完整样式:颜色、形状、徽标 |
| 离线支持 | 是 | 需要互联网 |
| 维护 | NuGet 更新 | 始终保持最新 |
| 输出格式 | PNG, SVG, PDF, ASCII | PNG, SVG |
C# 二维码使用场景
.NET 应用中二维码的常见场景。
ASP.NET Web API
在 ASP.NET Core API 中生成二维码,用于票据、发票、身份验证令牌和产品页面。
WPF 与 MAUI 桌面应用
创建桌面应用,生成二维码用于标签、名片和资产追踪。
Azure Functions
将二维码生成部署为无服务器 Azure Functions,由 HTTP 请求或队列消息触发。
报告与 PDF
使用 QuestPDF 或 iTextSharp 将二维码嵌入 PDF 报告和文档中,用于支付和追踪。
C# 二维码生态系统深入解析
.NET 生态系统为 Web、桌面、移动和云平台提供企业级二维码生成能力。
ASP.NET Core 中间件与依赖注入
将 QRCoder 注册为 scoped 服务。使用 IMemoryCache/Redis 进行缓存。在 minimal APIs 中,返回 Results.Bytes 以实现轻量级端点。
MAUI 与跨平台桌面
.NET MAUI 支持在 Windows、macOS、Android、iOS 上生成二维码。QRCoder 在所有平台上均可使用。WPF 使用 BitmapByteQRCode。
Azure Functions 与无服务器
部署为 Azure Functions。HTTP 触发或队列触发。冷启动低于 500ms。结合 Azure CDN 实现边缘缓存。
常见问题
关于使用 C# 生成二维码的常见问题。
QRCoder 是一个开源的 .NET 二维码生成库。它支持多种输出格式,包括 PNG、SVG、PDF 和 ASCII 艺术,无需外部依赖。