首先安装ZXing.Net及兼容包,然后使用BarcodeWriter生成二维码图像并显示在PictureBox中,接着通过BarcodeReader解码图像获取文本信息,注意设置尺寸、清晰度和编码以提高识别率。

在C#开发中,生成和识别二维码是许多项目中的常见需求,比如支付系统、会员卡、信息分享等场景。ZXing.Net 是一个强大的开源库,支持多种条码和二维码的生成与识别,使用简单且功能全面。下面带你一步步实现二维码的生成与识别。
安装 ZXing.Net 库
在开始之前,你需要将 ZXing.Net 添加到你的项目中。打开 Visual Studio,右键项目选择“管理 NuGet 包”,搜索并安装以下两个包:
- ZXing.Net:核心库,用于条码处理
- ZXing.Net.Bindings.Windows.Compatibility:如果使用 WinForms 或 WPF,可方便地处理图像类型转换
或者使用 Package Manager 命令行:
Install-Package ZXing.Net Install-Package ZXing.Net.Bindings.Windows.Compatibility
生成二维码(QR Code)
使用 ZXing.Net 生成二维码非常简单。以下是一个在 WinForms 中生成二维码并显示在 PictureBox 上的示例:
using ZXing; using ZXing.QrCode;// 创建二维码写入器 var writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Width = 300, Height = 300, Margin = 1 } };
// 生成二维码图像 var bitmap = writer.Write("https://www.php.cn/link/2f7eaf16eceec07fc19c93090e90033a");
// 显示在 PictureBox 中 pictureBox1.Image = bitmap;
你可以将任意文本、网址、联系方式等字符串传入 Write 方法生成对应的二维码。
读取二维码(识别)
识别二维码同样简单。假设你有一张包含二维码的图片,可以通过以下代码提取其中的信息:
using ZXing;// 加载二维码图片 var barcodeReader = new BarcodeReader(); var result = barcodeReader.Decode((Bitmap)pictureBox1.Image);
if (result != null) { MessageBox.Show("识别结果:" + result.Text); } else { MessageBox.Show("未识别到二维码"); }
这段代码会从 pictureBox1 中加载图像,并尝试解码其中的二维码内容。识别成功后返回文本信息。
如果你需要支持更复杂的图像来源(如文件路径),可以这样写:
var bitmap = (Bitmap)Image.FromFile(@"C:\qrcode.png"); var result = barcodeReader.Decode(bitmap);
实用技巧与注意事项
- 生成时设置合适的尺寸和边距,避免扫描设备无法识别
- 识别前尽量保证图像清晰、无严重模糊或遮挡
- 可启用多格式扫描:
barcodeReader.Options.TryHarder = true;提高识别成功率 - 支持中文时建议指定编码:
Options.Hints[EncodeHintType.CHARACTER_SET] = "UTF-8"
基本上就这些。ZXing.Net 让 C# 开发者能快速集成二维码功能,无需复杂配置。无论是桌面应用还是服务端生成图像,都能轻松应对。










