基于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)
 
 
 
 
 

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

相关内容

热门资讯

qq名片个性签名汇总   谁若真心对我,我便用命去珍惜她。下面是由yjbys小编为你精心编辑的一份qq名片个性签名汇总,欢...
最新发布的经典个性签名 最新发布的经典个性签名大全  随着社交网络的快速发展,越来越多人喜欢在网上设置个性签名,用以展示自己...
独一无二的二字昵称500个 独一无二的二字昵称500个  什么是网名  网名指在网上使用的名字。由于网络是一个虚拟的世界,为了避...
情人节个性签名 情人节个性签名(精选15篇)  随着网络社交的悄悄演进,越来越多人钟情于在社交平台上不定时地更换个性...
推进全民读书活动 推进全民读书活动推进全民读书活动促进社会主义核心价值体系建设王春霞文化是一个民族的根,一个民族的魂,...
简单有创意的车队名字350个 简单有创意的车队名字350个  名字的作用  姓名诱导性格倾向  不同的姓名诱导着不同特点的的性格。...
秦始皇帝陵博物院 秦始皇帝陵博物院欢迎大家来到举世闻名的秦始皇帝陵博物院。它是以秦始皇兵马俑博物馆为基础,以秦始皇帝陵...
湖北省普通话等级考试报名时间... 湖北省2010年普通话等级考试报名时间通知  一、报名  1、凡自愿参加普通话水平测试的个人可直接到...
经典签名句子 经典签名句子(精选140句)  在日常学习、工作或生活中,大家总免不了要接触或使用句子吧,句子是由词...
繁体网名 繁体网名  什么是网名  网名指在网上使用的名字。由于网络是一个虚拟的世界,为了避免使用真实姓名带来...
失恋的个性签名 失恋的个性签名(精选415句)  随着社交网络的快速发展,越来越多人钟情于在网上发布个性签名,用以展...
心态乐观的微信名字 心态乐观的微信名字  在互联网上,微信名字显得格外重要。对于如何取一个个人喜欢的微信网名,就显得非常...
公园城市 公园城市南京是一座美丽的城市。单是它的自然地理状况就足以让人感到它的美丽无比了。南京有大小N座山。紫...
QQ励志个性签名 QQ励志个性签名大全  有人试图和你无理取闹,安静的看着他,说:祝你好心情。然后离开。下面小编给大家...
流行签名 2017流行签名汇总  1、信任就像橡皮擦在一次一次的错误中慢慢损耗变小  2、我知道我还在想念你,...
正能量的团队名字150个 正能量的团队名字150个  团队起名要注意  1、团队名称要围绕“好听、好记、好写”三大原则起。  ...
名字好听的男网名 名字好听的男网名  名字好听的男网名(精选350个)  名字的意义在于它可以用来代表一个人,区别于别...
非常有哲理的个性签名 非常有哲理的个性签名55句  你有你的生命观,我有我的生命观,我不干涉你。只要我能,我就感化你。如果...
适合qq个性签名的句子霸气 适合qq个性签名的句子霸气  随着社交网络的迅猛发展,越来越多人钟情于更换个性签名,不同时期,不同环...
女生英文名 女生英文名▼※目录※▼女生英文名(一)女生英文名(二)女生英文名(三)  女生英文名(精选300个)...