搜档网
当前位置:搜档网 › 网络二维码图片的生成算法研究

网络二维码图片的生成算法研究

网络二维码图片的生成算法研究
网络二维码图片的生成算法研究

第26卷 第2期

2009年4月 黑龙江大学自然科学学报

JOURNAL OF NAT URAL SC I E NCE OF HE I L ONGJ I A NG UN I V ERSI TY Vol 126No 12

Ap ril,2009

网络二维码图片的生成算法研究

康春颖

(黑龙江大学信息科学与技术学院,哈尔滨150080)

摘 要:二维码作为一种新兴的条码,在网络中被越来越多的使用。通过从多种图片格式中

筛选出能显示出同等信息的最小存储量的图片格式,即单色BMP 位图格式,然后通过分析BMP 文件格式,提出一种支持在线生成的网络图片生成算法,结合通用二维码组件生成的数据,可以在线生成网络二维码图片。采用本算法生成的二维码图片,可以最小化图片文件体积,极大地提高了网络中二维码图片的显示速度。

关键词:二维码;生成算法;研究

中图分类号:T N919.81文献标志码:A 文章编号:1001-7011(2009)02-0216-04

收稿日期:2008-01-16

基金项目:黑龙江大学青年科学基金项目(QL200627)

1 前 言

二维码是条码的一种。条码是由一组按一定编码规则排列的条、空符号,用以表示一定的字符、数字及符号组成的信息。一维条形码简称一维码,它是根据一组水平方向的条的宽度不同,从而将其编成由“0”、“1”组成的一系列字符,该二进制字符按照一定的系统约定进行编码。在水平和垂直方向的二维空间存储信息的条形码,称为二维条形码(2-di m ensi onal bar code ),简称二维码。从它的编码原理而言,通常可分为以下两种类型:行排式二维条码和矩阵式二维码。行排式二维条码具有代表性的矩阵式二维条码有Code 16K 、Code 49、P DF417等。矩阵式二维码具有代表性的矩阵式二维条码有:Code One 、Maxi Code 、QR Code 、Data Matrix 等。

在本文中采用的是QR Code 码。QR Code 码(Quick Res ponse Code )是日本Dens o 公司在1994年9月研制的一种矩阵二维条码,它除了具有一维条码及其他二维条码所具有的信息容量大、可靠性高以外,还具有超高速识度、全方位识读、可表示汉字,并且有很强的保密防伪性等优点。

2 研究背景介绍

二维码的应用随着网络技术的发展也越来越广泛了,二维码可以和现在流行B /S 结构结合起来,让二维码在网络中起到一定的作用。如电子票务系统的开发,可以采用二维码。具体开发过程如下:通过现在流行的网络技术,将客户与服务商有效的联系在一个平台上,同时在票务流程中添加一个二维码的生成接口,这样可以将大量的票务信息生成二维码图片,由于二维码的存储信息容量非常大,可以为以后添加大的信息量提供了技术保障。通过平台上生成二维码的算法,生成相应信息的二维码,同时再通过手机的W ap 技术,将平台上生成的二维码发送到手机中,从而完成了生成“电影票”的过程,这样用户就可带着自己的手机到电影院,在电影院一端可持小型高速二维码识读器,将手机中的条码识读出来,即可看到所订的电影票的信息。这样,在整个售票的流程中不用打印任何票据,从而实现了真正意义上的电子票务。

在这个设计中生成二维码的部分是核心,如何在网络中生成二维码图片,并能使生成的二维码图片占用存储空间尽量小是最重要。因为如果二维码图片体积过大则不利于保存,同时大的图片格式下载起来速度会相应的下降,不利于业务系统的客户端显示,因此设计一种适合网络传输与显示的网络二维码图片生成算

法对二维码应用领域具有重要意义。

3 网络二维码图片在线生成算法

311 二维码生成组件介绍

涉及的二维码信息编码模块直接采用目前通用的二维码信息编码组件QREncode .dll,该组件可以根据编码选项对输入的字符串进行QR Code 编码,得到编码后的QR 符号,具体调用方法如下:

调用接口定义:

ST DMETHOD I M P CQREncoder:Encode (BST R bstrEncode Data,BYTE byErr or Correcti on Level,BOOL b I S O I 2EC,BSTR 3pbstr ResultStrea m )

输入参数说明:

BSTR bstrEncode Data:待编码的字符串,注意一个中文字符对应两个字节,对应汉字内码

BYTE byErr or Correcti onLevel:编码的纠错级别选择,0表示纠错级别L (7%),1表示纠错级别M (15%),2表示纠错级别Q (25%),3表示纠错级别H (30%)

BOOL b I S O I EC:采用的编码标准,取值为TRUE 表示采用国际标准(I S O /I EC 18004),F ALSE 表示采用国家标准(G B /T G B /T 18284-2000)

输出参数说明:

BSTR 3pbstr ResultStrea m:输出字符串,字符串由三部分组成,第一部分三字节,为编码后QR 符号的宽度,第二部分三字节,为编码后QR 符号的高度,第三部分为编码后的QR 符号,长度为QR 符号宽度与QR 符号高度的乘积。

对字符串“01234567”编码后得到返回值为:

“021021111111101101101111111100000101010001000001101110100110101011101101110101100001011101101110100110001011101100000100110001000001111111101010101111111000000001100000000000101101110010001001011000101011010100101100100101111000111110010110100010010110001010000111111001010010000000000001110010100001111111101000011010110100000101011111000101101110100101001000001101110101010010010110101110101011010010100100000100101101011011111111101001100100010”

由返回值可以得出字符串“01234567”经二维码信息编码后应理解为21个单位宽、21个单位高的正方形单位矩阵,可以根据矩阵中的每一个元素值(0或1)来生成二维码图片对应位置上的像素颜色,如果定义0值为白色,1值为黑色,每个单位对应1个像素,那么当前二维码图片应为21像素宽、21像素高的黑白相间的图片。

312 图片格式筛选

现将《网络二维码图片的生成算法研究》这个题目的信息生成一张二维码的图片,如图2所示

然后用不同的格式去保存这张图片,比较它们的大小。如表1所示,通过上面数据的比较,可以得出一个结论,在信息完全相同的情况下,单色BMP 格式是最小的,因为它的图像中只有黑白两种像素的图像,这正是本文要选择的格式。

313 在线生成二维码图片算法

在本文中如何生成二维码的图片是一个很重要的问题,根据上面的对比,可采用BMP 格式,主要的核心

?712?第2期康春颖:网络二维码图片的生成算法研究

代码如下:

B t oD 函数用于将二进制数转为十进制数

p rivate functi on B t oD (bcode )

di m i,a

a =0

for i =7t o 0step -1

a =a +cint (m id (bcode,8-i,1))3(2^i )

next

B t o D =a

end functi on

FHE AD 函数可返回BMP 文件的二进制文件头

p rivate functi on FHE AD (datasize,t w ,th )

输出BMP 文件头[文件头信息块与图像描述信息块与颜色表],共62个字节

各字节的信息依次含义为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)

文件头信息块

0000-0001:文件标识,为字母ASC II 码“BM ”。

0002-0005:文件大小。

0006-0009:保留,每字节以“00”填写。

000A -000D:记录图像数据区的起始位置。

图像描述信息块

000E -0011:图像描述信息块的大小,常为28H 。

0012-0015:图像宽度。

0016-0019:图像高度。

001A -001B:图像的p lane 总数(恒为1)。

001C -001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。

001E -0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。

0022-0025:图像区数据的大小。

0026-0029:水平每米有多少像素,在设备无关位图(.D I B )中,每字节以00H 填写。

002A -002D:垂直每米有多少像素,在设备无关位图(.D I B )中,每字节以00H 填写。

002E -0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。

颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。其中,每4字节表示一种颜色,并以B (蓝色)、G (绿色)、R (红色)、al pha (32位位图的透明度值,一般不需要)。即首先4字节表示颜色号1的颜色,接下来表示颜色号2的颜色,依此类推。

FHE AD =Chr B (66)&Chr B (77)&DWORD (datasize +&h3e )&Chr B (0)&Chr B (0)&-Chr B (0)&Chr B (0)&Chr B (&H3e )&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (&H28)&Chr B (0)&-Chr B (0)&Chr B (0)&DWORD (t w )&DWORD (th )&Chr B (1)&Chr B (0)&Chr B (1)&Chr B (0)&Chr B (0)&-Chr B (0)&Chr B (0)&Chr B (0)&DWORD (datasize )&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&Chr B (0)&-chr B (&hff )&chr B (&hff )&chr B (&hff )&chrb (0)

end functi on

生成图片,其中bmp -LBW idth 为四周留白的宽度,b mp -width 为编码图片的宽度,bmp -height 为编码图片的高度,b mp -b width 为单位信息点的像素宽度,bmp -A 为存放二维码编码组件生成的信息点编码数组

Public Sub dra w ()

Res ponse .Exp ires =-9999

Res ponse .AddHeader "Prag ma","no -cache"

?812?黑 龙 江 大 学 自 然 科 学 学 报 第26卷 

Res ponse .AddHeader "cache -ctr ol","no -cache"

Res ponse .ContentType ="I m age /BMP"

Res ponse .B inary W rite FHEAD (b mp -datasize,(bmp -width +b mp -LBW idth 32)3b mp -bwidth,(b mp -height +bmp -LBW idth 32)3bmp -bwidth )

输出图像数据(从下至上,从左至右)

for i =ubound (b mp -A ,1)-1t o 0step -1

for j =0t o ubound (bmp -A,2)-1step 8

res ponse .B inary W rite chrb (B t oD (bmp -A (i,j )&b mp -A (i,j +1)&bmp -A (i,j +2)&bmp -A (i,j +3)&b mp -A (i,j +4)&b mp -A (i,j +5)&bmp -A (i,j +6)&b mp -A (i,j +7)))

next

next

End Sub

4 小 结

二维码是一种具有大容量、可靠性高、防伪度强等特点的条形码,本文提供的二维码BMP 格式生成算法,具有生成速度快、图片体积小等特点,同时该算法所生成的二维码图片,不但可以在各类网络浏览器中正常显示,还支持用户在终端对生成的二维码图片下载保存与在线打印。

参考文献

[1] 李 杨.二维码技术在防伪领域的应用和标准建议[J ].中国标准化,2001,2:12-14.

[2] SCOT J.Special editi on using active server pages[M ].北京:电子工业出版社,1999:11-14.

[3] 陈飞雄.通用设备采集的二维码自动识别技术的研究[D ].西安:西安理工大学,2005.

[4] 王 郁.基于图像方式的二维条码译码研究[D ].北京:北京工业大学,2001.

[5] 齐金悦.二维条码的生成与识别研究[D ].哈尔滨:哈尔滨工程大学,2003.

[6] 刘 东,高西全.QR 码图像处理及识别算法的研究[J ].电子科技,2003,22:42-44.

[7] 袁 征,温巧燕,刁俊峰.基于水印和密码技术的数字版权保护模式[J ].北京邮电大学学报,2006(5):98-102.

[8] 刘宏伟,苗 东,李志刚,等.二维条码的识别方法[J ].微计算机信息,2004(4):72-73.

Research on genera ti on a lgor ith m of network two -d i m en si ona l code

K ANG Chun -ying

(College of I nf or mati on Science and Technol ogy,Heil ongjiang University,Harbin 150080,China )

Abstract:T wo -di m ensi onal code is a ne w and devel op ing code which has gradually entered peop le ’s life .Thr ough a variety of p icture for mats,the s mallest st orage for mat of the p icture t o sho w the t w o -di m ensi onal code was f ound .By analyzing the BMP file f or mats,a support net w ork t o generate on -line i m age generati on algorithm was given,general combinati on of t w o -di m ensi onal code components generated data can be generated on -line net w ork of t w o -di m ensi onal p icture code .The alg orithm used t o generate t w o -di m ensi onal p icture code can m ini 2m ize the i m age file size,greatly enhancing the net w ork of t w o -di m ensi onal p icture of the code showed that the s peed of .

Key words:t w o -di m ensi onal code;generati on algorith m;ectr onic commerce ?912?第2期康春颖:网络二维码图片的生成算法研究

企业微信二维码生成方法(最新)

. ;. 企业微信二维码生成方法是什么?微信二维码,是含有特定数据内容、只能被微信软 件扫描和解读的二维码。用手机的摄像头来扫描微信二维码,从而获得红人(例如电视专题采访幕后等)的名片、商户信息、折扣信息等。 微信二维码所需资料 1.微信名称:如上海XXX公司、XXX旗舰店、张三 2.手机号码:用于审核,不对用户开放 3.固定电话:用于审核,不对用户开放,没有可不提供 4.邮箱地址: 5.公司地址:个人可提供住址等 6.营业执照:扫描件或照片,也可提供其他相关证件(团队、个人等可不提供) 7.企业logo:可作为头像,如没有可以后补充 以上资料准备好后,直接联系优度网客服,优度网可快速帮您做好微信二维码。 制作二维码要求 开通微信二维码的前提是在业内有较高知名度,且要符合各种条件(如粉丝、企业资质等),一般企业及个人难以开通。最快捷的方法是找微信第三方服务机构帮忙,如优度网。优度网可快速完成二维码制作及功能开发等工作。搜优度网,可找到其在线工作人员。微信二维码(公众平台)开通有具有以下功能:消息推送、自动回复、关键词回复、二维码、用户管理等,能满足了大部分企业的微营销需求。 微信二维码营销 手机使用的私密性和微信粉丝关系的脆弱性特征,对微信账号粉丝的粘性是很大的考验,所以的持续推广以增加新粉丝就显得尤为重要。现今二维码的广泛使用和认知,为微信账号传播提供了绝佳的衔接介质。通过平面、户外、网络、印刷品等媒体可以很方便的让二维码露出,再结合诱因(如微信会员卡)即可比较简单的获得粉丝。这种与现有媒体的捆绑的方式,亦可将现有媒体传播价值保留和延伸至移动互联网中,以沉淀新产生的潜客。 微信二维码用途 传统企业的运营是极为单一,并且非常机械化的运营方式。另一方面,据调查结果显示,在一线城市一线商圈内,已有大概44%的手机用户装有微信终端。因此,随着移动互联网及微信的不断发展壮大,将有90%的用户装有微信客户端。二维码在最大程度上诠释了“方便”这个词。试想一下,当你在户外看到一个自己很喜欢的品牌,身边有没有纸和笔时,你怎么办?有些人会选择编辑手机记事本、有些人会选择向别人借用,或是临时记录在纸巾或手掌等一切能记录的地方,但是不管哪种方式,都是极不方便或是非常尴尬的。二维码就不一样了,只要轻松扫一扫,所有信息一秒呈现。以前是“好记性不如烂笔头”,是“烂笔头不如二维码”,一键扫描登陆浏览,免去其他多余的查询步骤,能够让我们在第一时间了解详细信息。

二维码的设计原理及生成规格

二维码的生成细节和原理 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章,揭露一下。供好学的人一同学习之。基础知识 首先,我们先说一下二维码一共有40个尺寸。官方叫版本Version。Version1是21x 21的矩阵,Version2是25x25的矩阵,Version3是29的尺寸,每增加一个version,就会增加4的尺寸,公式是:(V-1)*4+21(V是版本号)最高Version40,(40-1)*4+21 =177,所以最高是177x177的正方形。 下面我们看看一个二维码的样例: 定位图案 Position Detection Pattern是定位图案,用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个意思就是三个就可以标识一个矩形了。

?Timing Patterns也是用于定位的。原因是二维码有40种尺寸,尺寸过大了后需要有根标准线,不然扫描的时候可能会扫歪了。 ?Alignment Patterns只有Version2以上(包括Version2)的二维码需要这个东东,同样是为了定位用的。 功能性数据 ?Format Information存在于所有的尺寸中,用于存放一些格式化数据的。 ?Version Information在>=Version7以上,需要预留两块3x6的区域存放一些版本信息。 数据码和纠错码 ?除了上述的那些地方,剩下的地方存放Data Code数据码和Error Correction Code 纠错码。 数据编码 我们先来说说数据编码。QR码支持如下的编码: Numeric mode数字编码,从0到9。如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成10,12,14bits,编成多长还要看二维码的尺寸(下面有一个表Table3说明了这点) Alphanumeric mode字符编码。包括0-9,大写的A到Z(没有小写),以及符号$% *+–./:包括空格。这些字符会映射成一个字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值)编码的过程是把字符两两分组,然后转成下表的45进制,然后转成11bits的二进制,如果最后有一个落单的,那就转成6bits的二进制。而编码模式和字符的个数需要根据不同的Version尺寸编成9,11或13个二进制(如下表中Table3) Byte mode,字节编码,可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的编码。

网络二维码图片的生成算法研究

第26卷 第2期 2009年4月 黑龙江大学自然科学学报 JOURNAL OF NAT URAL SC I E NCE OF HE I L ONGJ I A NG UN I V ERSI TY Vol 126No 12 Ap ril,2009 网络二维码图片的生成算法研究 康春颖 (黑龙江大学信息科学与技术学院,哈尔滨150080) 摘 要:二维码作为一种新兴的条码,在网络中被越来越多的使用。通过从多种图片格式中 筛选出能显示出同等信息的最小存储量的图片格式,即单色BMP 位图格式,然后通过分析BMP 文件格式,提出一种支持在线生成的网络图片生成算法,结合通用二维码组件生成的数据,可以在线生成网络二维码图片。采用本算法生成的二维码图片,可以最小化图片文件体积,极大地提高了网络中二维码图片的显示速度。 关键词:二维码;生成算法;研究 中图分类号:T N919.81文献标志码:A 文章编号:1001-7011(2009)02-0216-04 收稿日期:2008-01-16 基金项目:黑龙江大学青年科学基金项目(QL200627) 1 前 言 二维码是条码的一种。条码是由一组按一定编码规则排列的条、空符号,用以表示一定的字符、数字及符号组成的信息。一维条形码简称一维码,它是根据一组水平方向的条的宽度不同,从而将其编成由“0”、“1”组成的一系列字符,该二进制字符按照一定的系统约定进行编码。在水平和垂直方向的二维空间存储信息的条形码,称为二维条形码(2-di m ensi onal bar code ),简称二维码。从它的编码原理而言,通常可分为以下两种类型:行排式二维条码和矩阵式二维码。行排式二维条码具有代表性的矩阵式二维条码有Code 16K 、Code 49、P DF417等。矩阵式二维码具有代表性的矩阵式二维条码有:Code One 、Maxi Code 、QR Code 、Data Matrix 等。 在本文中采用的是QR Code 码。QR Code 码(Quick Res ponse Code )是日本Dens o 公司在1994年9月研制的一种矩阵二维条码,它除了具有一维条码及其他二维条码所具有的信息容量大、可靠性高以外,还具有超高速识度、全方位识读、可表示汉字,并且有很强的保密防伪性等优点。 2 研究背景介绍 二维码的应用随着网络技术的发展也越来越广泛了,二维码可以和现在流行B /S 结构结合起来,让二维码在网络中起到一定的作用。如电子票务系统的开发,可以采用二维码。具体开发过程如下:通过现在流行的网络技术,将客户与服务商有效的联系在一个平台上,同时在票务流程中添加一个二维码的生成接口,这样可以将大量的票务信息生成二维码图片,由于二维码的存储信息容量非常大,可以为以后添加大的信息量提供了技术保障。通过平台上生成二维码的算法,生成相应信息的二维码,同时再通过手机的W ap 技术,将平台上生成的二维码发送到手机中,从而完成了生成“电影票”的过程,这样用户就可带着自己的手机到电影院,在电影院一端可持小型高速二维码识读器,将手机中的条码识读出来,即可看到所订的电影票的信息。这样,在整个售票的流程中不用打印任何票据,从而实现了真正意义上的电子票务。 在这个设计中生成二维码的部分是核心,如何在网络中生成二维码图片,并能使生成的二维码图片占用存储空间尽量小是最重要。因为如果二维码图片体积过大则不利于保存,同时大的图片格式下载起来速度会相应的下降,不利于业务系统的客户端显示,因此设计一种适合网络传输与显示的网络二维码图片生成算

二维码技术在物流行业中的实际应用

二维码技术在物流行业中的实际应用 绪论 随着信息技术的快速发展,条码技术也得到了大大的改进并由原来的一维码发展到了二维码。二维码从根本上改进了一维码的不足,从而更加有利于社会的发展。本文论述了二维码的技术原理、发展、应用领域及应用上存在的问题。关键词:二维码、发展、应用领域。 人们日常见到的印刷在各种商品外包装上的条形码,是普通一维条码,也就是平常所说的传统条码。这种条码自本世纪70 年代初问世以来,得到人们的普遍关注,发展十分迅速。在短短的二十多年时间里,它已广泛应用于工业、商业、交通运输业、金融、医疗卫生、仓储业、邮电及办公自动化等领域。条码的使用,极大地提高了信息处理的速度,提高了工作效率。八十年代末,出现了具有更大信息量的条码--二维码,条码技术因此出现了质的飞跃。二维码在与一维码同样的单位面积上的信息含量是一维码的近百倍,它不但可以存放数字,而且可以直接存放包括汉字在内的所有可以数字化的信息。例如文字、图片、声音、指纹等。二维码的出现是条码技术发展史上的里程碑,从质的方面提高了条码技术的应用水平,从量的方面拓宽了应用领域。在经济全球化、信息网络化、生产国际化的当今社会,作为信息交换、传递的介质,二维码技术有着非常广阔的应用前景。二维码技术作为一项新技术,逐步为银行、公安、物流等行业所采用。1999 年4 月国家经贸部专门召集有关部门会议,讨论贯彻落实二维码在我国的推广应用。 问题背景 某物流有限公司(以下简称:A 物流公司)系某有限责任公司控股的全资子公司,现已投入使用的物流中心面积达6万平方米。多年来,A 物流公司始终坚持信息化是现代物流的灵魂”,自行设计开发了ERP、WMS、第三方物流系统、二维条码、办公自动化系统(0A)、物流网站,成功地应用了温湿度自动监测技术、无线射频技术(RF)、电子标签技术、消防安保红外监控报警技术、GPS监控、业务叫号系统 等,引进了国际先进的托盘提升机、螺旋输送机、自动分拣系统等自动化物流设施,是一个集货品储存、验收养 护、物流加工、装卸搬运、集中配送和信息服务等六大功能于一体的专业化从作业现场了解到,在发货前,需通过自动分拣系统对货品进行分拣,所以,仓

二维码生成器

二维码生成器 简介 二维码生成器的应用原理其实就是二维码生成软件,你可以将个人信息输入到二维码生成器中,生成相应的二维码,然后进行保存应用。 这里的个人信息可以是:数字,网址,文字,图片,视频以及名片信息等,你可以将你想要生成二维码的信息进行导入,二维码生成器就会自动生成二维码。 我们常见的二维码生成器,国外的有Label Painter,Bartender,Label mx等。一般在网上都可以下载到。 制作原理 二维码其实就是由很多0、1组成的数字矩阵。二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流行的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。二维条码/二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。 二维码生成器的制作需要一个二维码生成算法,或者一个二维码插件,然后用JA VA ,C#,VB等编程语言编写一个调用软件就可以做成二维码生成器了。 这个二维码生成算法就是将组成二维码的0、1数字矩阵进行组合,输入二维码生成器的信息不同,所得到的0、1数字矩阵组合也不相同,因此生成的二维码样式就各种各样。 二维码应用 二维码和手机摄像头以及二维码和计算机的配合将产生多种多样的应用,比如今后我们可以在自己的名片上印上二维码,别人只需用安装二维码识别软件的摄像手机轻松一拍,名片上的各种资料就全部输入手机啦;如果超市的商品也印上二维码,我们就可以在手机上获得关于该商品的大量详细信息。2011年初二维码已经在日本和韩国获得广泛应用,台湾和大陆地区也已经开始推广,今后我们可以用二维码在自动贩售机买可乐、缴费、网上购物等等,二维码在我们以后的生活中将会越来越广泛的应用。 2012年中旬,G商通就技术开发了二维码抽奖,二维码会员积分,二维码优惠券下载,二维码签到,二维码产品防伪等功能,使二维码的应用变得广泛。随着科技的不断发展,二维码的市场应用以及生活应用会越来越广泛。 长沙三华广告公司整理

(完整版)二维码的生成与实现(matlab)

课程设计报告 课题名称:二维码的生成与识别 项目完成人(班级、学号、姓名): 项目完成时间: 2017/6/15

一、引言 1、编写目的 本学期学习《数字图像处理》,包含很多知识点,像:图像编码与压缩、图像相关变换、图像增强技术、图像复原技术,这些知识点的应用在实际编程中都非常重要。 纸上得来终觉浅,绝知此事要躬行。所以,这次课程设计的目的主要就是巩固所学的数字图像处理的相关知识。最终是我们通过该教学环节,把该课程以及相关知识融会贯通。 2、背景 由于受信息的容量限制,一维条码仅仅是对“物品”的标识,而不是对“物品”的描述,故一维条码的使用不得不依赖数据库存在。在使用上受到了极大的限制,效率很低。二维码正是为了解决一维条码无法解决的问题而产生的。二维码具有高密度、高可靠性等特点,可以用来表示数据文件、图像等,实现信息获取、网站跳转、广告推送、手机电商、优惠促销、会员管理等功能,具有很强的研究意义。 3、参考资料 《数字图像处理》第三版胡学龙 二、设计方案 1、图像采集 图像主要来自网上在线生成的二维码图像和该程序生成的二维码图像。

2、算法分析 预处理过程灰度化-----平滑处理------二值化 1.灰度化:一般都是为了减小图像原始数据量,便于后续处理时计算量更少,因为图像处理不一定需要对彩色图像的RGB三个分量都进行处理 2.平滑处理:图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。图像平滑的方法包括:插值方法,线性平滑方法,卷积法等等。这样的处理方法根据图像噪声的不同进行平滑,比如椒盐噪声,就采用线性平滑方法! 3.二值化:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。 二维码解码 二维码解码主要使用的是ZXing库,ZXing是个很经典的条码/二维码识别的开源类库 3、代码实现 打开图像 function pushbutton1_Callback(hObject, eventdata, handles) global im; [filename,pathname]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'} ,'选择图像'); if isequal(filename,0)||isequal(pathname,0) errordlg('您还没有选取图片!!','温馨提示');%如果没有输入,则创建错误对话框return; else

二维码生成与识别原理_修订版

QR二维码的生成与识别原理 一、简介 二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。二维码的种类包括:QR Code ,Data Matrix, Maxi Code, Aztec , Vericode, PDF417, Ultracode, Code 49, Code 16K等。 其中QR Code是被广泛使用的二维码,QR全称Quick Response,与其他编码方式相比,QR二维码具有存储容量大、编码速度快的特点,并且它也能表示更多的数据类型:比如:字符,数字,日文,中文等等。随着近几年智能手机的迅猛发展,QR二维码得到了广泛的应用。 关于QR二维码的标准,可参见标准文档(QR Code Spec): https://www.sodocs.net/doc/0e11376910.html,/files/datasheets/misc/qr_code.pdf 二、应用现状 随着智能机的普及和手机摄像头成像能力的提升,为了提高向机器内输入信息的速度,QR二维码得到迅猛发展,在许多行业中得到应用。 在一维码时代,“扫码”主要应用在超市或图书馆等场所,以获取商品价格或图书分类等有限的特定信息。二维码可以存储大容量数据,给人们的生活带来巨大方便。 从开始的扫描二维码提取文字或网址,到后来“扫一扫”添加好友、关注个人或公司微信或微博,再到扫码支付,二维码的应用已经非常普遍。 三、基础知识 QR码可分为不同的尺寸,或者叫版本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.微信名称:如上海XXX公司、XXX旗舰店、张三 2.手机号码:用于审核,不对用户开放 3.固定电话:用于审核,不对用户开放,没有可不提供 4.邮箱地址: 5.公司地址:个人可提供住址等 6.营业执照:扫描件或照片,也可提供其他相关证件(团队、个人等可不提供) 7.企业logo:可作为头像,如没有可以后补充 以上资料准备好后,直接联系优度网客服,优度网可快速帮您做好微信二维码。 制作二维码要求 开通微信二维码的前提是在业内有较高知名度,且要符合各种条件(如粉丝、企业资质等),一般企业及个人难以开通。最快捷的方法是找微信第三方服务机构帮忙,如优度网。优度网可快速完成二维码制作及功能开发等工作。搜优度网,可找到其在线工作人员。微信二维码(公众平台)开通有具有以下功能:消息推送、自动回复、关键词回复、二维码、用户管理等,能满足了大部分企业的微营销需求。 微信二维码营销 手机使用的私密性和微信粉丝关系的脆弱性特征,对微信账号粉丝的粘性是很大的考验,所以的持续推广以增加新粉丝就显得尤为重要。现今二维码的广泛使用和认知,为微信账号传播提供了绝佳的衔接介质。通过平面、户外、网络、印刷品等媒体可以很方便的让二维码露出,再结合诱因(如微信会员卡)即可比较简单的获得粉丝。这种与现有媒体的捆绑的方式,亦可将现有媒体传播价值保留和延伸至移动互联网中,以沉淀新产生的潜客。 微信二维码用途 传统企业的运营是极为单一,并且非常机械化的运营方式。另一方面,据调查结果显示,在一线城市一线商圈内,已有大概44%的手机用户装有微信终端。因此,随着移动互联网及微信的不断发展壮大,将有90%的用户装有微信客户端。二维码在最大程度上诠释了“方便”这个词。试想一下,当你在户外看到一个自己很喜欢的品牌,身边有没有纸和笔时,你怎么办?有些人会选择编辑手机记事本、有些人会选择向别人借用,或是临时记录在纸巾或手掌等一切能记录的地方,但是不管哪种方式,都是极不方便或是非常尴尬的。二维码就不一样

二维码编码规则

二维码编码规则 (1)QR码符号结构 设计中,每个QR码由一个个正方形模块构成,排列组成正方形阵列,其中有编码区域和功能区域,符号的四周是空区。如图所示: 1.符号规格和版本 QR码总共有40种规格的符号,根据标准,编号分别为规格1到规格40,规格1为21*21个模块,规格2为25*25模块,以此类推。版本N的规格每行每列为21+4(N-1)个模块。 2.寻像图形 一般来说,寻像图形会分布在3个位置,且图形均相同。这些图形分别位于符号的、右上角和左下角,如图2-1所示。以三个重叠的同心的正方形组成探测图形,这些图形的模块宽度比为1:1: 3: 1: 1,分别为7*7个深色模块、5*5个浅色模块、3*3个深色模块。由于该符号中在其它地方遇到类似图形的可能性极小,所以组成寻像图形的3个位置探测图形可以明确地确定视场中符号的位置和方向[5]。 3.分隔符 探测图形所在的位置和编码区域之间分隔符宽度为1个模块,如图2-1所示。全部由浅色模块组成。 4.定位图形 定位图形有列和行在垂直和水平方向,组成色由深色浅色交替。深色模块在开始和结尾,如图2-1所示。 5.校正图形 3个重叠的同心正方形组成校正图形,由5*5个深色模块、3*3个浅色模块以及位于中心的一个深色模块组成。校正图形的数量由QR码的版本号决定,版本号2及以上的符号均有校正图形,本设计采用的版本号为7。 6.编码区域 在设计中规定有编码区域,编码区域中有多种符号字符,包括数据码字、纠错码字、版本信息和格式信息等。 7.空白区

空白区即为环绕在符号四周的区域,它有4个模块宽的区域,空白区反射率与浅色模块相同。 (2)QR 码编码方法 国家对QR 码规定有一定的标准,其中编码步骤如图所示: 1.数据编码 在数据编码过程中,将输入的数据转换为一个位流,若ECI 为缺省状态,那么一个数据流将包括模式指示符、字符计数指示符和数据,最终以4位终止符0000表示。其结构如图所示: (1)数字模式 在本次设计中的数字模式下,必须将待输入的数据转化为二进制数,具体方法为每三位分为一组,剩余位转化为7位或4位二进制数。把指示符和数字计数指示符加在前面并将二进制数据连接起来。 (2)字母模式 在本次设计中的字母模式下,具体方法为:将前面字符乘以45之后再与第二个字符相加,再将其结果转化为11位二进制数,并将输入的数据以两个字符分为一组,若剩余一位,则将其转化为6位二进制数。最后把指示符和数字计数指示符加在前面并将二进制数据连接起来即可。 (3)8位字节模式 在8位字节模式下,把指示符和数字计数指示符加在前面并直接将二进制数据连接起来。 2. 纠错编码 QR 纠错码字采用纠错算法,为了符号在遇到损坏时不至丢失数据,把纠错码添加在数字码字序列的后面。纠错等级共有四级,分别为:L 级纠错容量:7%;M 级纠错容量:15%;Q 级纠错容量:25%;和H 级纠错容量:30%。 3. 构造最终信息 在该步骤中,在确定规格之后,必须按次序把产生的序列放入每一分块中,再按规定将数据 分块,之后再对每一块进行单独计算。在得出相应的纠错码字区块后, 按顺序把纠错码字区块排列,构成一个序列,添加到数据码字序列后面 [6]。 如D1,D12,D25,D35 ,D2,, (11) D22,D33,D45,D34,D46,E1.E23,E45,E67,E2,E24,... 4. 构造矩阵 在这一步中,需要将探测图形、分隔符、定位图形、校正图形和码字模块放入同一矩阵中,并把算出的序列填充到相应区域中。

(完整版)二维码的生成细节和原理

二维码的生成细节和原理 2013-10-29 09:46 陈皓酷壳网字号:T | T 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型 AD:51CTO学院:IT精品课程在线看! 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章,揭露一下。供好学的人一同学习之。 关于QR Code Specification,可参看这个PDF: https://www.sodocs.net/doc/0e11376910.html,/files/datasheets/misc/qr_code.pdf 基础知识 首先,我们先说一下二维码一共有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 的正方形。

下面我们看看一个二维码的样例: 定位图案 ?Position Detection Pattern是定位图案,用于标记二维码的矩形大小。 这三个定位图案有白边叫Separators for Postion Detection Patterns。 之所以三个而不是四个意思就是三个就可以标识一个矩形了。 ?Timing Patterns也是用于定位的。原因是二维码有40种尺寸,尺寸过大了后需要有根标准线,不然扫描的时候可能会扫歪了。 ?Alignment Patterns 只有Version 2以上(包括Version2)的二维码需要这个东东,同样是为了定位用的。 功能性数据

二维码的生成细节和原理

二維碼的生成細節和原理 二維碼又稱QR Code,QR全稱Quick Response,是一個近幾年來移動設備上超流行的一種編碼方式,它比傳統的Bar Code條形碼能存更多的信息,也能表示更多的數據類型:比如:字符,數字,日文,中文等等。這兩天學習了一下二維碼圖片生成的相關細節,覺得這個玩意就是一個密碼算法,在此寫一這篇文章,揭露一下。供好學的人一同學習之。 關於QR Code Specification,可參看下面附件的PDF:qr_code.pdf 基礎知識 首先,我們先說一下二維碼一共有40個尺寸。官方叫版本Version。Version1是21x21的矩陣,Version2是25x25的矩陣,Version3是29的尺寸,每增加一個version,就會增加4的尺寸,公式是:(V-1)*4+21(V是版本號)最高Version40,(40-1)*4+21=177,所以最高是177x177的正方形。 下面我們看看一個二維碼的樣例: 定位圖案 Position Detection Pattern是定位圖案,用於標記二維碼的矩形大小。這三個定位圖案有白邊叫Separators for Postion Detection Patterns。之所以三個而不是四個意思就是三個就可以標識一個矩形了。 Timing Patterns也是用於定位的。原因是二維碼有40種尺寸,尺寸過大了後需要有根標準線,不然掃瞄的時候可能會掃歪了。 Alignment Patterns只有Version2以上(包括Version2)的二維碼需要這個東東,同樣是為了定位用的。 功能性數據

Format Information存在於所有的尺寸中,用於存放一些格式化數據的。 Version Information在>=Version7以上,需要預留兩塊3x6的區域存放一些版本信息。 數據碼和糾錯碼 除了上述的那些地方,剩下的地方存放Data Code數據碼和Error Correction Code糾錯碼。 數據編碼 我們先來說說數據編碼。QR碼支持如下的編碼: Numeric mode數字編碼,從0到9。如果需要編碼的數字的個數不是3的倍數,那麼,最後剩下的1或2位數會被轉成4或7bits,則其它的每3位數字會被編成10,12,14bits,編成多長還要看二維碼的尺寸(下面有一個表Table3說明了這點) Alphanumeric mode字符編碼。包括0-9,大寫的A到Z(沒有小寫),以及符號$%*+–./:包括空格。這些字符會映射成一個字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值)編碼的過程是把字符兩兩分組,然後轉成下表的45進制,然後轉成11bits的二進制,如果最後有一個落單的,那就轉成6bits的二進制。而編碼模式和字符的個數需要根據不同的Version尺寸編成9,11或13個二進制(如下表中Table3) Byte mode,字節編碼,可以是0-255的ISO-8859-1字符。有些二維碼的掃瞄器可以自動檢測是否是UTF-8的編碼。 Kanji mode這是日文編碼,也是雙字節編碼。同樣,也可以用於中文編碼。日文和漢字的編碼會減去一個值。如:在0X8140to0X9FFC中的字符會減去8140,在0XE040到0XEBBF中的字符要減去0XC140,然後把前兩位拿出來乘以0XC0,然後再加上後兩位,最後轉成13bit的編碼。如下圖示例:

相关主题