首页
/ QRCoder API参考手册:所有类和方法的使用示例

QRCoder API参考手册:所有类和方法的使用示例

2026-02-06 05:31:05作者:贡沫苏Truman

想要在C#项目中快速生成专业级QR码吗?QRCoder提供了完整的API解决方案!本指南将带你深入了解这个纯C#开源QR码实现的所有核心类和方法,助你轻松掌握QR码生成技术。

QRCoder是一个功能强大的纯C# QR码生成库,支持多种输出格式和丰富的功能特性。无论你是需要简单的文本编码,还是复杂的商业应用如支付二维码、联系人信息等,QRCoder都能满足你的需求。😊

🎯 核心生成器类详解

QRCodeGenerator - 基础QR码生成

QRCodeGenerator是整个库的核心,负责将数据转换为QR码矩阵:

// 生成标准QR码
using var qrCodeData = QRCodeGenerator.GenerateQrCode("Hello World", QRCodeGenerator.ECCLevel.Q);

// 生成微型QR码
using var microQrCodeData = QRCodeGenerator.GenerateMicroQrCode("Hello", QRCodeGenerator.ECCLevel.L, requestedVersion: -2);

主要方法:

  • GenerateQrCode() - 生成标准QR码数据
  • GenerateMicroQrCode() - 生成微型QR码
  • 支持ECC纠错级别:L、M、Q、H

QR码底层数据结构

PayloadGenerator - 专业数据编码

PayloadGenerator提供了多种预定义的QR码数据类型,让你的应用更加专业化:

// 书签QR码
var bookmarkPayload = new PayloadGenerator.Bookmark("https://github.com/Shane32/QRCoder", "QRCoder Repository");

📊 渲染器类使用指南

PngByteQRCode - PNG格式输出

PNG QR码示例

PngByteQRCode是最常用的渲染器,支持多种配置选项:

// 生成PNG格式QR码
using var pngRenderer = new PngByteQRCode(qrCodeData);
byte[] qrCodeImage = pngRenderer.GetGraphic(20); // 20像素/模块

SvgQRCode - 矢量图形输出

SvgQRCode生成可缩放的矢量QR码,适合打印和高质量显示:

using var svgRenderer = new SvgQRCode(qrCodeData);
string svg = svgRenderer.GetGraphic();

主要特性:

  • 支持自定义颜色
  • 可设置透明度
  • 无限缩放不失真

BitmapByteQRCode - 位图格式

using var bitmapRenderer = new BitmapByteQRCode(qrCodeData);
byte[] bitmapImage = bitmapRenderer.GetGraphic();

🚀 实用工具类详解

QRCodeData - 数据矩阵操作

QRCodeData类提供了对QR码底层矩阵的直接访问:

using var qrCodeData = QRCodeGenerator.GenerateQrCode("Hello World", QRCodeGenerator.ECCLevel.Q);

// 访问模块矩阵
var moduleMatrix = qrCodeData.ModuleMatrix;
int size = moduleMatrix.Count; // 包含静区的QR码尺寸

Helper类 - 快速生成

各渲染器都提供了Helper类,实现一行代码生成:

// 快速生成PNG QR码
byte[] qrCodeImage = PngByteQRCodeHelper.GetQRCode("Hello World", QRCodeGenerator.ECCLevel.Q, 20);

📱 专业应用场景示例

联系方式QR码

var contactPayload = new PayloadGenerator.ContactData(
    name: "张三",
    phone: "+8613800138000"
);

WiFi网络QR码

var wifiPayload = new PayloadGenerator.WiFi(
    ssid: "MyWiFi",
    password: "securepassword",
    authenticationMode: PayloadGenerator.WiFi.Authentication.WPA
);

🔧 高级配置选项

自定义颜色和样式

// 自定义颜色
using var qrCode = new SvgQRCode(qrCodeData);
string coloredSvg = qrCode.GetGraphic(
    darkColor: "#FF0000", // 红色
    lightColor: "#FFFFFF"  // 白色
);

添加Logo和品牌标识

// 添加Logo到QR码中心
using var qrCode = new PngByteQRCode(qrCodeData);
byte[] qrWithLogo = qrCode.GetGraphic(
    pixelsPerModule: 20,
    icon: logoBytes, // Logo字节数组
    iconSizePercent: 15 // Logo大小占QR码的15%
);

💡 最佳实践建议

  1. 选择合适的ECC级别:根据使用场景选择L、M、Q、H
  2. 控制数据长度:避免超出QR码容量限制
  3. 测试可读性:在不同设备和环境下测试扫描效果

🎉 总结

QRCoder API提供了从简单文本到复杂商业应用的全方位QR码生成解决方案。通过本参考手册,你可以快速掌握所有核心类的使用方法,在实际项目中高效应用QR码技术。

现在就开始使用QRCoder,为你的C#应用添加专业的QR码生成功能吧!🚀

登录后查看全文
热门项目推荐
相关项目推荐