安裝
透過 NuGet 套件管理器安裝 QRCoder。
NuGet
dotnet add package QRCoderPackage Manager
Install-Package QRCoder使用 QRCoder 產生 QR碼
在 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# 中產生 QR碼
使用 HttpClient 從 C# 呼叫 QRCode.fun API 產生樣式化 QR碼。
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]);即時 QR碼預覽
立即嘗試使用 C# 產生 QR碼。
QR碼預覽
原生函式庫 vs API
比較使用 QRCoder 與 QRCode.fun API。
| 功能 | QRCoder | QRCode.fun API |
|---|---|---|
| 設定複雜度 | NuGet 安裝 | 透過 HttpClient 發送單次 HTTP 請求 |
| 自訂 | 顏色、標誌、形狀(ArtQRCode) | 完整樣式:顏色、形狀、標誌 |
| 離線支援 | 是 | 需要網路 |
| 維護 | NuGet 更新 | 始終保持最新 |
| 輸出格式 | PNG, SVG, PDF, ASCII | PNG, SVG |
C# QR碼使用情境
.NET 應用中 QR碼的常見情境。
ASP.NET Web API
在 ASP.NET Core API 中產生 QR碼,用於票券、發票、身份驗證權杖和產品頁面。
WPF 與 MAUI 桌面應用
建立桌面應用,產生 QR碼用於標籤、名片和資產追蹤。
Azure Functions
將 QR碼產生部署為無伺服器 Azure Functions,由 HTTP 請求或佇列訊息觸發。
報告與 PDF
使用 QuestPDF 或 iTextSharp 將 QR碼嵌入 PDF 報告和文件中,用於付款和追蹤。
C# QR碼生態系統深入解析
.NET 生態系統為 Web、桌面、行動和雲端平台提供企業級 QR碼產生能力。
ASP.NET Core 中介軟體與依賴注入
將 QRCoder 註冊為 scoped 服務。使用 IMemoryCache/Redis 進行快取。在 minimal APIs 中,返回 Results.Bytes 以實現輕量級端點。
MAUI 與跨平台桌面
.NET MAUI 支援在 Windows、macOS、Android、iOS 上產生 QR碼。QRCoder 在所有平台上均可使用。WPF 使用 BitmapByteQRCode。
Azure Functions 與無伺服器
部署為 Azure Functions。HTTP 觸發或佇列觸發。冷啟動低於 500ms。結合 Azure CDN 實現邊緣快取。
常見問題
關於使用 C# 產生 QR碼的常見問題。
QRCoder 是一個開源的 .NET QR碼產生函式庫。它支援多種輸出格式,包括 PNG、SVG、PDF 和 ASCII 藝術,無需外部相依性。