news 2026/11/1 18:38:42

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用C#和ZXing打造码生成与识别利器

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

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

准备工作

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

Install-Package ZXing.Net

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

生成码

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

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。

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

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了。

识别码

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 12:43:30

HTTP网络巩固知识基础题(1)

1. HTTP 是什么协议? A. 应用层协议 B. 传输层协议 C. 网络层协议 D. 数据链路层协议 答案:A 解析: HTTP(HyperText Transfer Protocol)是应用层协议,运行在TCP之上,用于Web浏览器和服务器之间的通信。 2. HTTP 默认端口号是多少? A. 21 B. 25 C. 80 D. 443 答案:…

作者头像 李华
网站建设 2026/11/2 7:02:50

GE PLE3PNLBG02

GE PLE3PNLBG02 产品信息GE PLE3PNLBG02 是通用电气(GE)生产的一款家用电器部件或配件,可能涉及照明、插座或其他电气设备。由于型号较为具体,需结合产品类型进一步确认功能或用途。常见应用场景该型号可能用于以下场景&#xff1…

作者头像 李华
网站建设 2026/11/2 15:40:55

业务导向型技术日志首日记录

基于过往业务的个人技术日志—第一天 业务背景回顾 今天开始整理过往参与的核心项目技术细节,第一个回顾的是2022年Q2负责的电商促销系统性能优化项目。该系统承载公司618大促活动,峰值QPS需支撑5万,原系统在压测时出现响应延迟飙升和数据库连…

作者头像 李华
网站建设 2026/11/2 2:18:25

LobeChat与FastGPT对比:两款开源聊天界面的核心差异

LobeChat 与 FastGPT 对比:两款开源聊天界面的核心差异 在大语言模型(LLM)快速普及的今天,越来越多开发者和企业希望将这些强大的模型融入实际业务场景。然而,原始模型本身并不具备用户交互能力——它更像一个“黑盒引…

作者头像 李华
网站建设 2026/11/2 4:13:37

LobeChat如何帮助初创公司低成本启动AI产品线?

LobeChat如何帮助初创公司低成本启动AI产品线? 在生成式AI席卷各行各业的今天,许多初创团队手握强大的大模型能力,却卡在了“如何让用户用起来”这一关。一个训练得再出色的模型,如果缺乏直观、稳定的交互界面,也难以转…

作者头像 李华
网站建设 2026/11/2 2:17:34

基于Uniapp + SpringBoot + Vue的动态个人博客系统的设计与实现

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…

作者头像 李华