ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

VS 2022的二维码编码器和解码器C#类库。NET 6.0(3.0.0版)

2022-03-05 13:34:29  阅读:233  来源: 互联网

标签:类库 编码 编码器 演示 字节 解决方案 二维码 解码器 模块


二维码库允许您的程序创建(编码)二维码图像,或读取(解码)包含一个或多个二维码的图像。附加的源代码由两个解决方案组成,一个二维码编码器解决方案和一个二维码解码器解决方案。该软件已升级至VS 2022。NET6。0.源代码是用C#编写的。这是一个开源代码。

 

编码器解决方案

QRCodeEncoderLibrary是一个类库项目。

qrcodeencodermo一个Windows窗体演示程序,演示如何将字符串或字节数组编码到二维码图像文件中。

QRCodeConsoleDemo一个Windows控制台演示程序,演示如何将文本文件或二进制文件编码为二维码图像文件。

解码器解决方案

QRCodeDecoderLibrary是一个类库项目。

QRCODECODECORDEMO开发演示如何解码包含QR码的图像文件并检索字符串或字节数组。图像文件源可以是磁盘文件或实时摄像机输入。摄像机软件基于Direct Show库。

该库的二维码编码器部分包含在PDF File Writer C#Class library文章中。

 

安装

附加的源代码由两个Visual Studio解决方案组成。每个解决方案由一个库项目和演示/测试项目组成。

 

将代码集成到应用程序需要以下步骤。安装QRCodeEncoderLibrary。dll或QRCodeDecoderLibrary。dll在您的开发区域。启动Visual Studio C#程序并打开应用程序。转到解决方案资源管理器,右键单击引用,然后选择添加引用。选择“浏览”选项卡,并将文件系统导航到所需库的位置。发布应用程序时,必须将相关库文件括在内,并安装在可执行(.exe)文件所在的文件夹中。

 

或者,可以将相关库的源文件复制到项目中。

 

必须将相关的“使用”语句添加到所有源文件中:

 

使用QRCodeEncoderLibrary

//或者

使用QRCodeDecoderLibrary

二维码

QR码代表快速响应码。这是一个二维条形码。从视觉上看,它是一个由黑白方块模块组成的正方形。广场周围是一个白色的安静地带。二维码由国际标准ISO/IEC 18004定义。此标准的免费副本可在此处获得。

 

ISO标准文件将二维码定义为“QR码是一种矩阵,由一系列名义上呈方形的模块组成,这些模块以整体方形排列,包括一个位于符号三个角的独特查找模式,旨在帮助轻松定位其位置、大小和倾斜度。提供了多种尺寸的符号,以及四个级别的误差c纠正。模块尺寸由用户指定,以便通过多种技术生成符号。”

 

ISO标准18004是了解二维码细节的最佳信息来源。在互联网上搜索可以得到更多关于这个主题的代理文章。维基百科关于二维码的文章可以在这里查看。

 

二维码标准由40个不同大小的正方形组成。每个方块都有一个从1到40的版本号。每个正方形的大小从21×21模块(版本1)到177×177模块(版本40)不等。每个版本的每侧比上一个版本多4个模块。

 

方形尺寸=21+4*(版本-1)

一些模块是固定的。最明显的是三个方形搜索器。其余模块分为数据模块和纠错模块。错误纠正分为4个级别:

 

L-Low将纠正多达7%的错误

M-Medium最多可以纠正15%的错误

Q-Quarter将更正多达25%的错误

H-High将纠正多达30%的错误

数据区中的每个模块代表一位。黑色模块为1,白色模块为0。数据区域可分为多个部分。每个输入段字节数组以数字、算术和字节三种方式之一编码为数据位。注:二维码标准还有一种汉字编码方法。该项目不支持它。

 

数字数据:该段仅由数字0–9组成。三位数字将转换为10位。

字母数字数据:该段由数字0-9、大写字母A-Z和其他九个字符组成[空格,$%*+-./:]。两个字母数字字符将转换为11位。

8位字节数据。该段不会被转换。输入位和模块之间存在一对一的对应关系。

要编码二维码,请提供要编码的数据和四个纠错码之一。系统将计算表示数据所需的最小版本号。

 

除了数据,二维码还可以包含ECI分配号。分配编号范围为0到999999。该数字不是二维码数据的一部分。它用于根据字节值的替代解释(例如,替代字符集)对数据进行编码。

标签:类库,编码,编码器,演示,字节,解决方案,二维码,解码器,模块
来源: https://www.cnblogs.com/chinancsa/p/15967704.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有