C# 使用 ThoughtWorks.QRCode 生成与解析二维码

追风的人
追风的人
发布时间:2026-10-14| 5人浏览过
原创

本文详解如何使用 C# 和 ThoughtWorks.QRCode 类库快速生成自定义参数的二维码,以及如何通过解码类将二维码图片还原为原始文本数据。

准备工作

要实现二维码的生成与解析,首先需要引入 ThoughtWorks.QRCode.dll 类库。在项目中添加该引用后,务必在代码文件头部包含以下命名空间:

using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ThoughtWorks.QRCode.Codec.Util;

生成二维码

生成二维码主要依赖 QRCodeEncoder 类。为了生成高质量的二维码,需要设置编码模式、大小、版本号以及纠错等级等关键属性。

第1步:初始化编码器并配置编码模式

创建 QRCodeEncoder 实例,并根据用户需求或业务场景选择编码模式,以支持不同长度的字符集:

QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
string encoding = "Byte"; // 模拟获取的用户输入
if (encoding == "Byte")
{
    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
}
else if (encoding == "AlphaNumeric")
{
    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
}
else if (encoding == "Numeric")
{
    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;
}

第2步:设置二维码的尺寸与版本

通过调整缩放比例(Scale)和版本号(Version),可以控制二维码生成的图像精度及其容量上限。建议加入异常处理以防用户输入非法数值:

try
{
    int scale = Convert.ToInt16("20"); // 实际尺寸
    qrCodeEncoder.QRCodeScale = scale;
}
catch (Exception ex)
{
    // 提示无效的尺寸!
    return;
}
try
{
    int version = Convert.ToInt16("1"); // 实际版本
    qrCodeEncoder.QRCodeVersion = version;
}
catch (Exception ex)
{
    // 提示无效的版本
}

第3步:配置纠错等级并生成图像

最后设置纠错等级(Error Correction Level),这决定了二维码被遮挡后仍可被识别的程度。配置完成后调用 Encode 方法即可生成 Image 对象:

string errorCorrect = "M"; // L, M, Q, H
if (errorCorrect == "L")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
else if (errorCorrect == "M")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
else if (errorCorrect == "Q")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
else if (errorCorrect == "H")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;

string data = "待编码的内容"; // 实际字符串
System.Drawing.Image image;
image = qrCodeEncoder.Encode(data);
// 此时 image 即为生成的二维码图像,可绑定至PictureBox显示或保存

解析二维码

解析二维码依赖于 QRCodeDecoder 类。只需传入包含二维码的图片,即可提取其中的字符串信息。

QRCodeDecoder decoder = new QRCodeDecoder();
// 假设 pb_view.Image 是已显示的二维码图片
String decodedString = decoder.decode(new QRCodeBitmapImage(new System.Drawing.Bitmap(pb_view.Image)));
// decodedString 即为解析出的原始数据

以上就是 C# 使用 ThoughtWorks.QRCode 生成和解析二维码的详细内容,更多关于 .NET 图像编程的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。