使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo


Posted in Javascript onSeptember 01, 2016

0 Jquery.Qrcode简介

Jquery.Qrcode.js是一个在浏览器端基于Jquery动态生成二维码的插件,支持Canvas和Table两种渲染方式,它的优点是在客户端动态生成,减轻了服务端压力,尤其是在大量使用二维码的系统中。Jquery.Qrcode主要包括以下参数设置:

•render 定义二维码的渲染方式,有table和canvas两种渲染方式

•width 定义二维码的宽度

•height 定义二维码的高度

•text 定义二维码内容

•typeNumber 二维码的计算模式 一般默认为-1

•correctLevel 二维码的纠错级别

•background 定义二维码的背景颜色

•foreground 定义二维码的前景色

1 Jquery.Qrcode基本使用

1.0 添加相关引用

Jquery.Qrcode仅仅依赖于Jquery,所以我们只需要添加Jquery及Jquery.Qrcode的引用即可。

<script src="~/Content/js/jquery-2.1.4.min.js"></script>
<script src="~/Content/js/jquery.qrcode.min.js"></script>

1.1 添加渲染区域元素

Jquery.Qrcode使用div元素作为渲染的目标区域,在页面上添加一个div标签。

<div id="qrCodeDiv">
</div>

1.2 二维码生成

$("#qrCodeDiv").qrcode({
render: "canvas", // 渲染方式有table方式(IE兼容)和canvas方式
width: 260, //宽度
height: 260, //高度
text: "www.baidu.com", //内容
typeNumber: -1,//计算模式
correctLevel: 2,//二维码纠错级别
background: "#ffffff",//背景颜色
foreground: "#000000" //二维码颜色
});

二维码生成如下

使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo

2 Jquery.Qrcode对中文字符的支持

默认的Jquery.Qrcode是不支持中文编码的,上面我们如果将text的内容设置为中文字符串,生成二维码并扫描后会发现结果是乱码。这是因为jquery.qrcode采用 charCodeAt() 方式进行编码转换,默认采用UTF-8方式编码,而针对中文一般情况下是采用UTF-16编码实现,这样就会导致乱码的出现,解决方案就是在二维码编码前,将二维码的内容字符串转换成UTF-8格式,js转换方法如下。

function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for (i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
};

生成二维码时,将转码后的结果作为text的值即可

$("#qrCodeDiv").qrcode({
render: "canvas", // 渲染方式有table方式(IE兼容)和canvas方式
width: 260, //宽度
height: 260, //高度
text: utf16to8("汉字内容的二维码"), //内容
typeNumber: -1,//计算模式
correctLevel: 2,//二维码纠错级别
background: "#ffffff",//背景颜色
foreground: "#000000" //二维码颜色
});

3 Jquery.Qrcode添加自定义Logo图片

给二维码添加一个自定义的logo,会让你的二维码看上去更专业,默认的Jquery.Qrcode是不支持添加自定义Logo的,这里比较简单的实现方案就是,针对每个二维码添加一个img标签,让img在二维码区域相对居中显示即可。

<img id="qrCodeIco" src="~/images/logo.png" style="position: absolute;width: 30px; height: 30px;" />

控制img标签的位置

var margin = ($("#qrCodeDiv").height() - $("#qrCodeIco").height()) / 2; //控制Logo图标的位置
$("#qrCodeIco").css("margin", margin);

最终结果如下

使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo

以上所述是小编给大家介绍的使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript去除空格的几种方法
Oct 03 Javascript
在表单提交前进行验证的几种方式整理
Jul 31 Javascript
Javascript实现视频轮播在pc端与移动端均可
Sep 29 Javascript
JS中数组Array的用法示例介绍
Feb 20 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
jQuery遍历Table应用示例
Apr 09 Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
使用JS编写的随机抽取号码的小程序
Aug 11 Javascript
详解node Async/Await 更好的异步编程解决方案
May 10 Javascript
React key值的作用和使用详解
Aug 23 Javascript
JavaScript Canvas实现验证码
Aug 02 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
Sep 01 #Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 #Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 #Javascript
javaScript如何跳出多重循环break、continue
Sep 01 #Javascript
AngularJs bootstrap详解及示例代码
Sep 01 #Javascript
JavaScript数据类型学习笔记分享
Sep 01 #Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 #Javascript
You might like
2019十大人气国漫
2020/03/13 国漫
php实现有趣的人品测试程序实例
2015/06/08 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
德国购买健身器材:AsVIVA
2017/08/09 全球购物
函授毕业生自我鉴定
2013/11/06 职场文书
生产部统计员岗位职责
2014/01/05 职场文书
环保建议书作文
2014/03/12 职场文书
庆祝国庆节标语
2014/10/09 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
环境卫生标语
2015/08/03 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL