基于WEB的二维码生成系统设计与实现(Asp.net)
创始人
2024-01-16 03:05:44
0

目 录

1 引言 6
2 二维码的生成原理 6
2.1基础知识 6
2.1.1定位图案 7
2.1.2功能性数据 8
2.1.3数据码和纠错码 8
2.2数据编码 8
2.3结束符和补齐符 9
2.3.1补齐码(Padding Bytes) 9
2.3.2纠错码 10
2.4最终编码 11
2.4.1穿插放置 11
2.4.2Remainder Bits 13
2.5画二维码图 14
2.5.1 Position Detection Pattern 14
2.5.2 Alignment Pattern 14
2.5.3 Timing Pattern 14
2.5.4 Format Information 15
2.5.5 Version Information 16
2.5.6数据和数据纠错码 17
2.5.7掩码图案 18
3 二维码生成系统设计和方法 20
3.1 总体设计 20
3.2功能设计 20
3.2.1二维码可自主添加logo 20
3.2.2 可以生成网址类型二维码 20
3.2.3 关于如何添加logo的方法 21
4代码实现之核心代码 25
4.1生成二维码的组件thoughtworks.qrcode 25
4.2 利用ThoughtWorks.QRCode.Codec生成二维码 26
4.3 Encoder.cs编码器 27
4.4 BitVector.cs位向量 28
4.5 BlockPair.cs生成矩阵 32
4.6容错率的实现 33
5代码实现之界面功能代码 35
5.1实现编码方式可选的主要部分代码 35
5.2实现可自主上传添加logo功能代码 36
5.3实现控制二维码大小的功能代码 39
5.4实现纠错等级调整的二维码功能代码 39
6 结束语 41
参考文献 42
致谢 43
2 二维码的生成原理
2.1基础知识
首先,二维码一共有40个尺寸。官方叫版本Version。Version 1是21 x 21的矩阵,Version 2是 25 x 25的矩阵,Version 3是29的尺寸,每增加一个version,就会增加4的尺寸,公式是:(V-1)*4 + 21(V是版本号) 最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。
如图1是一个二维码的样例:
在这里插入图片描述

图1 二维码的样例

2.1.1定位图案
Position Detection Pattern是定位图案,用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个意思就是三个就可以标识一个矩形了。
Timing Patterns也是用于定位的。原因是二维码有40种尺寸,尺寸过大需要有标准线,否则会出现扫描读取失误。
Alignment Patterns 只有Version 2以上(包括Version2)的二维码需要这个同样是为了定位用的。
2.1.2功能性数据
Format Information 存在于所有的尺寸中,用于存放一些格式化数据的。Version Information 在 >= Version 7以上,需要预留两块3 x 6的区域存放一些版本信息。
2.1.3数据码和纠错码
除了上述的那些位置,剩下的地方存放 Data Code 数据码 和 Error Correction Code 纠错码。
2.2数据编码
QR码支持如下的编码:
Numeric mode数字编码:从0到9。如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits,编成多长还要看二维码的尺寸
Alphanumeric mode字符编码:包括 0-9,大写的A到Z(没有小写),以及符号$ % * + – . / : 包括空格。这些字符会映射成一个字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值) 编码的过程是把字符两两分组,然后转成45进制,然后转成11bits的二进制,本文转载自http://www.biyezuopin.vip/onews.asp?id=12645如果最后有一个尾数,那就转成6bits的二进制。而编码模式和字符的个数需要根据不同的Version尺寸编成9, 11或13个二进制
Byte mode字节编码:可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的编码。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>


用户名:
密码:(注:默认密码666666)
 
 
 
 
 

()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...