使用jquery.qrcode生成彩色二维码实例


Posted in Javascript onAugust 08, 2014

jquery.qrcode.js 是居于jquery类库的绘制二维码的插件,用它来实现二维码图形渲染支持canvas和table两种绘图方式。(jquery.qrcode.js 设置显示方式为table时在webkit核心浏览器如chrome下会变形,这个需要注意。)

下面为测试代码(增加了颜色控制,可以设置4个区块的颜色值,需要指定render为table。),效果如下:

使用jquery.qrcode生成彩色二维码实例

代码如下:

<html>
<head>
<title>JS生成二维码</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.qrcode.min.js"></script>
<style>
 #output{
 margin-left:300px; 
 margin-top:100px; 
 }
</style>
</head>
<body>
<div id="output"></div>
<script>
 window.onload = function () {
 var trs = $('#output').qrcode({
  width: 100,
  height: 100,
  render: "canvas", //设置渲染方式 table canvas
  text: utf16to8("javascript生成二维码"),
  background: "#ffffff", //背景颜色 
  foreground: "red" //前景颜色 
 }).find('tr'), trLen = Math.floor(trs.size() / 2), tdLen = Math.floor(trs.eq(0).find('td').size() / 2), tds, bgColor;
 var colors = [['#ff0000', '#0100e2'], ['#00ed01', '#9f4d95']];
 trs.each(function (j) {
  tds = $(this).find('td');
  tds.each(function (i) {
  bgColor = this.style.backgroundColor;
  if (bgColor == 'red') {
   this.style.backgroundColor = colors[j < trLen ? 0 : 1][i < tdLen ? 0 : 1];
  }
  });
 });
 }
 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;
 } 
</script>
 
</body>
</html>

jquery-qrcode这个库是采用 charCodeAt这个方式进行编码转换的,而这个方法默认会获取它的 Unicode 编码,一般的解码器都是采用UTF-8, ISO-8859-1等方式,英文是没有问题,如果是中文,一般情况下Unicode是UTF-16实现,长度2位,而UTF-8编码是3位,这样二维码的编解码就不匹配了。
 
解决方式:在二维码编码前把字符串转换成UTF-8,具体代码如上utf16to8函数

PS:本站还提供了一个功能非常强大的二维码生成工具,感兴趣的朋友可以参考一下:

Javascript 相关文章推荐
Draggable Elements 元素拖拽功能实现代码
Mar 30 Javascript
Javascript常用字符串判断函数代码分享
Dec 08 Javascript
Javascript显示和隐藏ul列表的方法
Jul 15 Javascript
ECharts仪表盘实例代码(附源码下载)
Feb 18 Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 Javascript
jsp 自动编译机制详细介绍
Dec 01 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
JS 组件系列之BootstrapTable的treegrid功能
Jun 16 Javascript
理解javascript async的用法
Aug 22 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
Mar 22 Javascript
JavaScript遍历数组和对象的元素简单操作示例
Jul 09 Javascript
vue请求数据的三种方式
Mar 04 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
Aug 08 #Javascript
js调试工具console.log()方法查看js代码的执行情况
Aug 08 #Javascript
JS创建类和对象的两种不同方式
Aug 08 #Javascript
将HTML格式的String转化为HTMLElement的实现方法
Aug 07 #Javascript
jquery datatable后台封装数据示例代码
Aug 07 #Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 #Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 #Javascript
You might like
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
动手学习无线电
2021/03/10 无线电
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
简单实现python画圆功能
2018/01/25 Python
python实现点对点聊天程序
2018/07/28 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
Python3.5运算符操作实例详解
2019/04/25 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
python 批量将中文名转换为拼音
2021/02/07 Python
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
宿舍卫生检讨书
2014/01/16 职场文书
优秀员工评语
2014/02/10 职场文书
后备干部培训方案
2014/05/22 职场文书
物流专业自荐信
2014/05/23 职场文书
食品安全汇报材料
2014/08/18 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
2014年会计工作总结
2014/11/27 职场文书
优秀教师推荐材料
2014/12/16 职场文书
个人委托函范文
2015/01/29 职场文书
全国助残日活动总结
2015/05/11 职场文书
六一活动主持词
2015/06/30 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记