计算机时代2018年第6期
0引言
近年来,随着移动互联网、物联网、云计算、大数据等新技术发展,“扫一扫”在、浏览器、文件资料中得到普通应用[1]。用户通过智能手机、平板电脑等移动智能终端扫描“二维码”,便能轻松跳转到另一个页面或获取用户名片,给用户使用带来极大的便利。本文重点介绍二维码的知识,分析在Web 开发中实现二维码的生成,对Web 开发有很好的指导意义。
1二维码技术概述元宵节短信祝福
二维码是用某种特定的几何图形按一定规律在
平面(二维方向上)分布的黑白相间的图形记录数据符号信息。二维码在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。二维条码具有储存量大、数据形式多样,有一定的容错性,还可以存储网址信息[2],信息保密性高、追踪性高、抗损性强、备援性大、成本便宜等特性,这些特性特别适用于表单、安全保密、追踪、证照、存货盘点、资料备援等方面。
QR(Quick-Response)code 是Denso 公司于1994年
DOI:10.16644/jki33-1094/tp.2018.06.010
Web 开发中二维码的生成与应用*
杨艳丽1,段寿建2
(1.保山学院数学学院,云南保山678000;2.保山学院信息学院)
要:二维码具有储存量大、数据形式多样、信息保密性高、追踪性高、抗损性强、备援性大、成本低等特性。随着智能
终端设备的普及,二维码技术在、浏览器、文件资料中得到广泛应用,用户通过智能手机、平板电脑等移动智能终端扫描二维码,便能轻松跳转到另一个页面或获取用户名片,给用户使用带来极大的便利。研究了在Web 开发中用PHP 和Jquery 两种方式生成二维码的程序,实践证明了两种方法的有效性和灵活性。关键词:二维码;Web 开发;PHP ;Jquery 中图分类号:G354.46
文献标志码:A
文章编号:1006-8228(2018)06-35-03
The generation and application of QR code in the Web development
Yang Yanli 1,Duan Shoujian 2
(1.College of mathematics,BaoShan University,Baoshan,Yunnan 678000,China;2.College of information,BaoShan University )Abstract :Two dimensional code has the characteristics of large storage,diverse data form,information confidentiality,high traceability,strong resistance to damage,large backup and low cost.With the popularization of intelligent terminal equipment,two-dimensional code technology has been widely used in WeChat,browsers and files.Users can easily jump to another page or obtain user card on the mobile intelligent terminals such as smart phones and tablet computers,which can bring great convenience to users.In this paper,two methods to generate QR code in the Web development with PHP and Jquery are studied respectively.The practice proves that both the methods are effective and flexible.Key words :QR code ;Web development ;PHP ;JQuery
收稿日期:2018-03-26
*基金项目:云南省教育厅科学研究项目“基于本体的教育资源信息整合与个性化服务平台建设研究”(2013Y050);保山学院校级科研项目“基于粗糙集理论的高校课程教学质量评价和试卷质量评价
研究与应用”(16BY009)
共产主义社会的基本特征
作者简介:杨艳丽(1982-),女,云南保山人,硕士,讲师,主要研究方向:信息代数。
通讯作者:段寿建(1981-),男,云南保山人,硕士,副教授,主要研究方向:计算机网络,软件开发。
·
·35
Computer Era No.62018
研制的一种矩阵二维码,是目前被广泛使用的一种二维码,其解码速度快,具有一维条码及其他二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。QRcode 的基本结构如图1所示[3]
刘德华哭着道歉图1QRcode 二维码的基本结构
⑴位置探测图形、位置探测图形分隔符、定位图形:用于对二维码的定位,对每个QR 码来说,位置都是固定存在的,只是大小规格会有所差异。
⑵校正图形:规格确定,校正图形的数量和位置也就确定了。
⑶格式信息:表示改二维码的纠错级别,分为L、M、Q、H。
⑷版本信息:即二维码的规格,QR 码符号共有40种规格的矩阵(一般为黑白),从21×21(版本1),到177×177(版本40),每一版本符号比前一版本每边增加4个模块。
⑸数据和纠错码字:实际保存的二维码信息和纠错码字(用于修正二维码损坏带来的错误)。
2使用PHP 生成带个性化logo 的二维码
2.1准备工作
在开发前安装好WAMP 环境,开启PHP 的GD 库,在PHP QRcode 的phpqrcode.sourceforge/下载QRcode 源码,将源码程序文件夹phpqrcode 存放在PHP 站点下。phpqrcode.php 定义了生成二维码图片函数png(),png()方法参数如下[4]
public static function png($text,$outfile=false,$level=QR_ECLEVEL_L,$size=3,$margin=4,$saveandprint=false)
联合国总部所在地
{$enc=QRencode::factory($level,$size,$margin);return $enc->encodePNG($text,$outfile,
$saveandprint=false);}
奇的组词
参数说明如下。
第一个参数:$text,设计需要生成二维码的字符。第二个参数:$outfile,默认为否,不生成文件,只将二维码图片返回,否则需要给出存放生成二维码图片的路径。
第三个参数:$level,默认为L,这个参数可传递的值分别是
L(QR_ECLEVEL_L,7%),M
(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)。这个参数用于控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比。利用二维维码的容错率,用户可以将个性化的logo 放置在生成的二维码图片任何区域。
第四个参数:$size,控制生成图片的大小,默认为4。
第五个参数:$margin,控制生成二维码的空白区域大小。
第六个参数:$saveandprint,保存二维码图片并显示出来。
2.2制作生成带个性化logo 的二维码的网页
准备一张个性化图标文件,命名为logo.png,新建PHP 文件,具体代码及注释如下:
<?php
include "phpqrcode/qrlib.php";//引用QRcode 代码包$value='www.bsnc';//需要生成二维码的字符$QRLevel='H';//设置容错级别$QRSize=6;//生成图片大小
QRcode::png($value,'qrcode.png',$QRLevel,$QRSize,2);//生成二维码图片
$logo='logo.png';//准备好的个性化logo 图片$QR='qrcode.png';//已经生成的原始二维码图//以下代码生成带个性化图标二维码if ($logo!==FALSE){
$QR=imagecreatefromstring(file_get_contents($QR));//载入二维码图像
$logo=imagecreatefromstring(file_get_contents($logo));//载入个性化的logo 图像
$QRWidth=imagesx($QR);//设置二维码图片宽度$QRHeight=imagesy($QR);//二维码图片高度$logo
Width=imagesx($logo);//logo 图片宽度$logoHeight=imagesy($logo);//logo 图片高度$logoQRWidth=$QRWidth/5;$scale=$logoWidth/$logoQRWidth;$logoQRHeight=$logoHeight/$scale;
·
·36
计算机时代2018年第6期
$fromWidth=($QRWidth-$logoQRWidth)/2;//重新组合图片并调整大小
imagecopyresampled($QR,$logo,$fromWidth,$fromWidth,0,0,$logoQRWidth,$logoQRHeight,$logoWidth,$logoHeight);}
//输出组合的图片
imagepng($QR,'resultPic.png');echo '<img src="resultPic.png">';?>
网页运行程序后,生成如图2所示的带个性化logo
二维码图片:
图2
用php 生成的带个性化logo 的二维码样例
开发者可以通过调节程序中的各个参数,生成所需的二维码图片。
3使用Jquery 生成QRcode 二维码
⑴准备工作
下载基于jquery 的二维码生成插件qrcode,下载jquery.qrcode.min.js 和jquery.min.js,网址分别为:github/jeromeetienne/jquery-qrcode/和cdn.bootcss/jquery/3.2.1/jquery.min.js [5]
察字组词。
⑵制作生成二维码的网页
新建html 文件,具体代码及注释如下:
<div id="qrcode"></div>
<script src="jquery.min.js"></script><!--引用jquery-->
<script src="jquery.qrcode.min.js"></script>
<!--引用jquery 的qrcode 插件-->
<script>
$('#qrcode').qrcode({width:128,height:128,text:"www.bsnc"});<!--生成二维码--></script>
运行html 网页后,将生成如图3
所示的二维码。
图3用Jquery 生成的二维码样例
4结束语
在Web 开发中,生成二维码为用户浏览提供了高效的访问方式,本文分析了二维码的基本原理,详细分析了用PHP 和Jquery 两种方法生成二维码的程序
代码,用PHP 生成适用于动态网页,用Jquery 生成适用于静态网页,两种方法程序代码简洁、参数可调节、应用性强,在Web 开发中有很好的指导意义。
二维码提供了的信息移动性便捷性,在物联网和电子商务的推动下,二维码的应用前景必将越来越好,二维码的安全是需要进一步研究的问题。参考文献(References):
[1]于成丽,胡万里.二维码的前世今生[J].保密科学技术,2017.12:57-62
[2]周乐乐,赵超越,祁南南等.基于图像隐藏和二维码技术的农产品追溯体系研究[J].吉首大学学报,2017.6:120-124[3]草料二维码.QR 码原理详解[EB/OL].cli.im/news/260/(2018-03)
[4]方信工作室.使用PHP QR Code 生成二维码[EB/OL].wwwblogs/txw1958/p/phpqrcode.html(2018-03)[5]慕课网.实例学习PHP QRCode
//www.imooc/learn/862/(2018-03)
·
·37