C#如何实现二维码的生成与识别?ZXing.Net库实战教程

来源:这里教程网 时间:2026-02-21 17:32:14 作者:

在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;
<p>// 创建二维码写入器
var writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions
{
Width = 300,
Height = 300,
Margin = 1
}
};</p><p>// 生成二维码图像
var bitmap = writer.Write("<a href="https://www.php.cn/link/2f7eaf16eceec07fc19c93090e90033a">https://www.php.cn/link/2f7eaf16eceec07fc19c93090e90033a</a>");</p><p>// 显示在 PictureBox 中
pictureBox1.Image = bitmap;</p>

你可以将任意文本、网址、联系方式等字符串传入 Write 方法生成对应的二维码。

读取二维码(识别)

识别二维码同样简单。假设你有一张包含二维码的图片,可以通过以下代码提取其中的信息:

using ZXing;
<p>// 加载二维码图片
var barcodeReader = new BarcodeReader();
var result = barcodeReader.Decode((Bitmap)pictureBox1.Image);</p><p>if (result != null)
{
MessageBox.Show("识别结果:" + result.Text);
}
else
{
MessageBox.Show("未识别到二维码");
}</p>

这段代码会从 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# 开发者能快速集成二维码功能,无需复杂配置。无论是桌面应用还是服务端生成图像,都能轻松应对。

相关推荐