二维码库允许您的程序创建(编码)二维码图像,或读取(解码)包含一个或多个二维码的图像。附加的源代码由两个解决方案组成,一个二维码编码器解决方案和一个二维码解码器解决方案。该软件已升级至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。该数字不是二维码数据的一部分。它用于根据字节值的替代解释(例如,替代字符集)对数据进行编码。