用C#和ZXing打造码生成与识别利器

使用C#语言基于ZXing开发的码生成/识别软件

在当今数字化时代,二维码、条形码等各种码的应用无处不在。今天咱就来聊聊怎么用C#语言搭配ZXing库开发一款码生成与识别的软件,这过程可有趣啦!

准备工作

首先得在项目里引入ZXing库。咱可以通过NuGet包管理器来搞定,打开"程序包管理器控制台",敲入以下命令:

text 复制代码
Install-Package ZXing.Net

这就把ZXing.Net这个包给装上了,它可是咱开发的得力助手。

生成码

生成码的过程其实不难。咱先来看生成二维码的代码示例:

csharp 复制代码
using ZXing;
using ZXing.QrCode;
using System.Drawing;

class Program
{
    static void Main()
    {
        string content = "https://www.example.com";// 要编码到二维码里的内容
        BarcodeWriter writer = new BarcodeWriter
        {
            Format = BarcodeFormat.QR_CODE,
            Options = new QrCodeEncodingOptions
            {
                Height = 300,
                Width = 300
            }
        };
        Bitmap result = writer.Write(content);
        result.Save("qrcode.png");
    }
}

这段代码里,咱先定义了要编码到二维码里的内容content,这里是一个网址。然后创建了一个BarcodeWriter对象,指定它生成的格式是QR_CODE,也就是二维码啦。还设置了二维码图片的高度和宽度为300像素。接着调用Write方法把内容写进二维码,最后把生成的二维码以图片的形式保存下来,名字叫qrcode.png

要是想生成条形码,代码也类似,只需要改改格式就行:

csharp 复制代码
using ZXing;
using ZXing.Common;
using System.Drawing;

class Program
{
    static void Main()
    {
        string content = "123456789012";// 条形码内容
        BarcodeWriter writer = new BarcodeWriter
        {
            Format = BarcodeFormat.CODE_128,
            Options = new EncodingOptions
            {
                Height = 100,
                Width = 300
            }
        };
        Bitmap result = writer.Write(content);
        result.Save("barcode.png");
    }
}

这里把格式改成了CODE_128,这是一种常见的条形码格式,然后设置下合适的高度和宽度,就生成条形码图片barcode.png了。

识别码

识别码同样很有意思。下面是识别二维码和条形码的代码:

csharp 复制代码
using ZXing;
using ZXing.Common;
using System.Drawing;

class Program
{
    static void Main()
    {
        string filePath = "qrcode.png";// 要识别的图片路径
        var bitmap = new Bitmap(filePath);
        var reader = new BarcodeReader();
        var result = reader.Decode(new BitmapLuminanceSource(bitmap));
        if (result!= null)
        {
            Console.WriteLine("识别结果: " + result.Text);
        }
        else
        {
            Console.WriteLine("未识别到有效码");
        }
    }
}

这段代码里,先指定了要识别的图片路径filePath,这里假设是之前生成的qrcode.png。接着创建一个Bitmap对象加载图片,再创建一个BarcodeReader对象来做识别工作。调用Decode方法传入图片的亮度源BitmapLuminanceSource,如果识别成功,result就会有值,咱把识别出来的文本打印出来;要是没识别到,就提示"未识别到有效码"。

用C#结合ZXing开发码生成与识别软件是不是还挺酷的?无论是用于开发工具类软件,还是集成到大型项目里,这个技能都超实用,大家不妨动手试试,说不定还能发现更多有趣的应用场景呢!

相关推荐
一直C16 小时前
Linux应用软件编程|TCP协议与Socket全套编程(三次握手、四次挥手、报文头部、核心机制)
linux·网络协议·tcp/ip·wireshark·vim·visual studio
啊阿狸不会拉杆20 小时前
《计算机网络-自顶向下方法》1.8 小结、课后习题和 Wireshark 实验 读书笔记
计算机网络·测试工具·wireshark
zhonyu鱼6 天前
Wireshark:开源免费的抓包工具,网络故障排查与安全分析利器
测试工具·安全·wireshark
MC皮蛋侠客6 天前
DNP3 系列(十二):测试与工具链——模拟器、Wireshark 与一致性测试
网络·wireshark·dnp3
网安蟹佬霸6 天前
# 网络流量分析实战:从Wireshark到入侵检测系统构建(2026最新版,附完整流量分析链与IDS规则集)
网络·测试工具·安全·开源·wireshark·密码学·哈希算法
非凡大爹8 天前
Wireshark抓包解析:IPv4数据报服务类型字段从ToS到DSCP+ECN的演进
计算机网络·wireshark
小绫网络安全19 天前
Wireshark抓包完全入门教程:从零开始掌握网络分析
arm开发·测试工具·wireshark
雾沉川22 天前
Wireshark v4.4.7.0 网络抓包工具安装与实操技术教程
网络·测试工具·wireshark
我是Superman丶1 个月前
【2026亲测】Wireshark安装教程 Windows系统|下载安装、Npcap配置及首次抓包
windows·测试工具·wireshark
米尔的可达鸭1 个月前
UDP 通信深度实验:从 Windows FastPath 到 ICMP 端口不可达的完整排查
windows·websocket·网络协议·rust·udp·wireshark·tcpdump