二维码生成算法研究
2014-03-02程裕强刘爱民周国军
□程裕强,刘爱民,周国军
(1,3.玉林师范学院 数学与信息科学学院,广西 玉林 537000;2.玉林师范学院 教育技术中心,广西 玉林 537000)
二维码生成算法研究
□程裕强1,刘爱民2,周国军3
(1,3.玉林师范学院 数学与信息科学学院,广西 玉林 537000;2.玉林师范学院 教育技术中心,广西 玉林 537000)
二维码技术被广泛应用,但是生成技术繁多,不易选择. 针对这个问题,本文主要研究了两种二维码生成方法,并通过具体代码实现. 对于二维码一般性需求,可以直接使用jquery-qrcode,快捷方便,但是jquery-qrcode存在依赖于浏览器、暂不支持中文等问题. 对于需要在二维码中添加Logo图片、彩色二维码等需求,可以使用Google公司提供的ZXing库来实现,该方法存在一定难度,需要编写的代码较多.
二维码;Logo二维码;彩色二维码
1 前言
在当今移动互联网时代,二维码得到了空前的广泛应用.二维码(Two-dimensional code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙.在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等.[1]如今智能手机扫一扫功能的应用使得二维码更加普遍.
二维码按照生成原理可以分为矩阵式二维码或行列式二维码,常用的是矩阵式二维码.矩阵式二维码是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码.在矩阵元素位置上,出现方点、圆点或其他形状点表示二进制“1”,不出现点表示二进制的“0”,点的排列组合确定了矩阵式二维码所代表的意义.矩阵式二维码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制.具有代表性的矩阵式二维码有:Code One、Maxi Code、QR Code、Data Matrix等.
2 简单二维码生成
要生成二维码,可以直接使用jquery-qrcode,简单方便.jquery.qrcode.js是Jquery的一个插件,可在浏览器上生成QRCODE,并将生成的QRCODE嵌入到你的网页中.这个开源的三方库可以从https://github. com/jeromeetienne/jquery-qrcode下载获取.jquery.qrcode.js 是把它用jquery方式封装起来的,用它来实现图形渲染,其实就是画图,支持canvas和table两种方式.下面代码是在页面中通过引用jquery.qrcode.js来生成二维码.
程序运行结果如图1所示.
图1 简单二维码
jquery-qrcode存在问题:
1) 使用canvas方式渲染性能还是非常不错的,但是如果用table方式,性能不太理想,特别是IE系列的浏览器.
2) jquery-qrcode默认不支持中文.
3 基于Google ZXing的二维码实现
ZXing (Zebra Crossing)是Google提供一个开源的、支持多种格式的条形码图像处理库,提供了二维码的生成与解析的方法;ZXing使用Java实现,同时为其他语言提供接口[2].使用Zxing生成二维码,可以在二维码中添加Logo图片,可以设置二维码图片的颜色,可以满足人们对二维码更复杂的需求.
下面是一个通过Java语言编写的[3,4],使用Google公司的开源ZXing库,用于生成和解析二维码的程序.该程序增加了在二维码中添加Logo图片,生成彩色二维码等功能.
程序运行后,可以在D盘找到生成的二维码图片,如图2所示.打开该二维码图片后,可以使用手机二维码扫描软件进行扫描,测试结果如图3所示.
图2 带Logo的彩色二维码
图3 手机扫描二维码
4 结束语
本文主要研究了两种二维码生成方法,并通过具体代码实现.对于二维码一般性需求,可以直接使用jquery-qrcode,快捷方便,但是jquery-qrcode存在依赖于浏览器、暂不支持中文等问题.对于需要在二维码中添加Logo图片、彩色二维码等需求,可以使用Google公司提供的ZXing库来实现,该方法存在一定难度,需要编写的代码较多. ■
[1]百度百科,http://baike.baidu.com/view/132241. htm?fr=aladdin[EB/OL].
[2]梁燕来,程裕强. Java面向对象程序设计[M].北京:人民邮电出版社,2013.4.
[3]程裕强.编程语言中浮点数精度丢失问题[J].计算机安全(第148期),2013:59-61
[4]程裕强.浅谈加密算法教学改革[J].玉林师范学院学报(自然科学),2013,32(2):152-155
[5]程裕强.抽象工厂模式探讨[J].玉林师范学院学报(自然科学),2014,35(2):82-86
[6]王杨.二维码传播信息的应用及分析[D].太原:山西大学,2013.
【责任编辑 谢明俊】
The Design and Realization of Two-dimensional Code Algorithm
CHEN Yu-qiang1, LIU Ai-ming2, ZHOU Guo-jun3
(1, 3. College of Mathematics and Information Science, Yulin Normal University, Yulin, Guangxi 537000; 2. Educational Technology Center, Yulin Normal University, Yulin, Guangxi 537000)
This paper studies the two-dimensional code generation methods, and Coding. It can be used directly jquery-qrcode for the demand for a general two-dimensional code, fast and convenient, but jquery-qrcode existence depends on the browser and does not support Chinese and other issues. For the two-dimensional code with Logo and the color two-dimensional code and other needs, you can use Google provided ZXing library to implement this method there is a certain degree of difficulty, the code you need to write more.
two-dimensional code, two-dimensional code with Logo, color two-dimensional code
TP309.7
A
1004-4671(2014)05-0118-05
2014-09-03
2013年度玉林师范学院校级资助项目“基于面向对象思想的汉字结构研”,编号:2013YJYB02;2014年度广西高校科学技术研究资助项目“多媒体保密通信中的混沌同步控制技术与密码算法研究”,编号:YB2014316。
程裕强(1982~)男,汉族,玉林师范学院数学与信息科学学院硕士,讲师,主要研究方向:本体论,中文信息处理。