C# 生成一维码(条形码)和二维码

前言

在使用C#语言进行客户端软件开发时很多时候我们会有需要生成二维码和一维码的需求,在智能工厂和一些商品扫码之类的软件中应用居多,此文章简单记录了一维码和二维码的编码格式和使用ZXing库生成二维码和一维码的过程。

一、引入Zxing.net

在编写代码之前我们需要先在NuGet中引入Zxing.net

右键点击解决方案名称----->点击管理NuGet程序包

在程序包中搜索Zxing---->点击安装Zxing.net

二、主要代码

1.引入库

using ZXing;
using ZXing.Common;
using ZXing.QrCode;

2.生成条形码

        /// <summary>
        /// 生成条形码
        /// </summary>
        /// <param name="barcodeContent">需要生成条码的内容</param>
        /// <param name="barcodeWidth">条码宽度</param>
        /// <param name="barcodeHeight">条码长度</param>
        /// <returns>返回条码图形</returns>
        public static Bitmap GetBarcodeBitmap(string barcodeContent, int barcodeWidth, int             barcodeHeight)
        {
            BarcodeWriter barcodeWriter = new BarcodeWriter();
            barcodeWriter.Format = BarcodeFormat.CODE_39;//设置编码格式
            EncodingOptions encodingOptions = new EncodingOptions();
            encodingOptions.Width = barcodeWidth;//设置宽度
            encodingOptions.Height = barcodeHeight;//设置长度
            encodingOptions.Margin = 2;//设置边距
            barcodeWriter.Options = encodingOptions;
            Bitmap bitmap = barcodeWriter.Write(barcodeContent);
            return bitmap;
        }

3.生成二维码

        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="qrCodeContent">要生成二维码的内容</param>
        /// <param name="qrCodeWidth">二维码宽度</param>
        /// <param name="qrCodeHeight">二维码高度</param>
        /// <returns>返回二维码图片</returns>
        public static Bitmap GetQRCodeBitmap(string qrCodeContent,int qrCodeWidth,int qrCodeHeight)
          {
              BarcodeWriter barcodeWriter = new BarcodeWriter();
              barcodeWriter.Format = BarcodeFormat.QR_CODE;
              QrCodeEncodingOptions qrCodeEncodingOptions = new QrCodeEncodingOptions();
              qrCodeEncodingOptions.DisableECI = true;
              qrCodeEncodingOptions.CharacterSet = "UTF-8";//设置编码
              qrCodeEncodingOptions.Width = qrCodeWidth;//设置二维码宽度
              qrCodeEncodingOptions.Height = qrCodeHeight;//设置二维码高度
              qrCodeEncodingOptions.Margin = 0;//设置二维码边距

              barcodeWriter.Options = qrCodeEncodingOptions;
              Bitmap bitmap = barcodeWriter.Write(qrCodeContent);//写入内容
              return bitmap;
          }


一维码和二维码的编码格式

一维条码的编码方式:Code39码(标准39码)、Codabar码(库德巴码)、Code25码(标准25码)、ITF25码(交叉25码)、Matrix25码(矩阵25码)、UPC-A码、UPC-E码、EAN-13码(EAN-13国际商品条码)、EAN-8码(EAN-8国际商品条码)、Code128码(Code128码,包括EAN128码)等。
二维条码:PDF417码、Code49码、Code 16K码、Data Matrix码、MaxiCode码等,主要分为堆积或层排式和棋盘或矩阵式两大类。
  目前,国际广泛使用的条码种类有EAN、UPC码(商品条码,用于在世界范围内唯一标识一种商品。我们在超市中最常见的就是这种条码)、Code39码(可表示数字和字母,在管理领域应用最广)、ITF25码(在物流管理中应用较多)、Codebar码(多用于医疗、图书领域)、Code93码、Code128码等。其中,EAN码是当今世界上广为使用的商品条码,已成为电子数据交换(EDI)的基础;UPC码主要为美国和加拿大使用;在各类条码应用系统中,Code39码因其可采用数字与字母共同组成的方式而在各行业内部管理上被广泛使用;在血库、图书馆和照像馆的业务中,Codebar码也被广泛使用。


文章标签:

原文连接:https://blog.csdn.net/Zzu_zzx/article/details/123315764

相关推荐

Flask框架——消息闪现

34个图片压缩工具集合,包含在线压缩和CLI工具

入门即享受!coolbpf 硬核提升 BPF 开发效率 | 龙蜥技术

基于 OPLG 从 0 到 1 构建统一可观测平台实践

全链路灰度在数据库上我们是怎么做的?

冴羽答读者问:过程比结果重要吗?如果是,怎么理解?如果不是,又怎么解?

接口文档管理工具,选yapi 还是 Apifox? 这里列出了两款软件的深度分析,看完再下载不迟。

基于 Docker 来部署 Vue 或 React 前端项目及 Node 后端服务

三十岁的我,自由了!

如何实现带timeout的input?

统计千行代码Bug率,有没有意义?

814. 二叉树剪枝 : 简单递归运用题

【综合笔试题】难度 3.5\u002F5,多解法热门二叉树笔试题

为什么设计的软件不好用?那是因为不熟悉软件开发模型!一文熟悉软件开发模型

作为前端,我是这样从零实现CI\u002FCD二(node服务部署及前后端联调)

极智开发 | 讲解 Nginx 特性之一:反向代理

Netty 案例之 IM 方案设计

从 Google 离职,前Go 语言负责人跳槽小公司

最终一致性性分布式事务 TCC

不谈源码,聊聊位运算的实际应用