原文地址: https://blog.csdn.net/u011127019/article/details/51226104

1.qrcode其实是通过使用jQuery实现图形渲染,画图,支持canvas(HTML5)和table两种方式,

github源码地址:

https://github.com/jeromeetienne/jquery-qrcode

参数说明:

  1. render   : "canvas",//设置渲染方式
  2. width       : 256,     //设置宽度
  3. height      : 256,     //设置高度
  4. typeNumber  : -1,      //计算模式
  5. correctLevel    : QRErrorCorrectLevel.H,//纠错等级
  6. background      : "#ffffff",//背景颜色
  7. foreground      : "#000000" //前景颜色

2.使用实例:

插件引用

  1.  <script src="../Js/jquery-1.11.3.min.js"></script>
  2. <script src="../Js/jquery-qrcode-master/jquery.qrcode.min.js"></script>

简单实例1:

  1. <div id="code"></div>
  2. <script>
  3. //任意字符串 生成二维码
  4. //默认使用Canvas画图
  5. $('#code').qrcode('http://blog.csdn.net/u011127019');
  6. </script>

简单实例2:

  1. <div id="code"></div>
  2. <script>
  3. //table 模式兼容 IE低版本
  4. $('#code').qrcode({
  5. render: 'table',
  6. width: 100,
  7. height: 100,
  8. text: 'http://blog.csdn.net/u011127019'
  9. });

10. </script>

简单实例3(中文支持):

我们试验的时候发现不能识别中文内容的二维码,通过查找多方资料了解到,jquery-qrcode是采用charCodeAt()方式进行编码转换的。而这个方法默认会获取它的Unicode编码,如果有中文内容,在生成二维码前就要把字符串转换成UTF-8,然后再生成二维码。

  1. <div id="code"></div>
  2. <script>
  3. //如果内容中有中文,在生成二维码钱就要把字符串转换成utf-8
  4. function toUtf8(str) {
  5. var out, i, len, c;
  6. out = "";
  7. len = str.length;
  8. for (i = 0; i < len; i++) {
  9. c = str.charCodeAt(i);
  10. if ((c >= 0x0001) && (c <= 0x007F)) {
  11. out += str.charAt(i);
  12. } else if (c > 0x07FF) {
  13. out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
  14. out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
  15. out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  16. } else {
  17. out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
  18. out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  19. }
  20. }
  21. return out;
  22. }
  23. $('#code').qrcode({
  24. text: toUtf8('我是tianma'),
  25. width: 150,
  26. height: 150
  27. });
  28. //就目前 微信/支付宝等 不识别其他颜色的二维码
  29. $('#code').qrcode({
  30. text: toUtf8('我是tianma'),
  31. width: 150,
  32. height: 150,
  33. background: '#f00',
  34. foreground: '#0f0'
  35. });

38. </script>

实例4:

  1. //text 属性的值长度不能太长,最大字节数 10208
  2. //text 字符串太长 微信/支付宝等扫一扫无法识别,微博识别内容更多
  3. //微博扫一扫:大约200 字以内,微信扫一扫:大约 160字以内,支付宝扫一扫:大约130字符以内
  4. $('#code').qrcode({
  5. text: toUtf8('SignalR 是 ASP.NET 团队正在开发的一个 Microsoft .NET Framework 库和 jQuery 插件,可能包括在以后版本的 ASP.NET 平台中。 它提供了一些前景极为光明的功能,而这些功能正是,并且是越来越多的,当前不曾具有的,'),
  6. width: 150,
  7. height: 150
  8. });

实例5,将生成的二维码转换成图片格式:

  1. <div id="divOne"></div>
  2. <img id='imgOne'  style='border:1px solid red;'/>
  3. <script>
  4. //默认使用Canvas生成,并显示到图片
  5. var qrcode= $('#divOne').qrcode('http://www.gongjuji.net/').hide();
  6. var canvas=qrcode.find('canvas').get(0);
  7. $('#imgOne').attr('src',canvas.toDataURL('image/jpg'))
  8. </script>

显示结果:

实例6,在当前的图片上添加文字或logo处理:

  1. //默认使用Canvas画图
  2. var qrcode = $('#code').qrcode({
  3. text: '@url',
  4. width: 400,
  5. height: 400
  6. }).hide();
  7. //添加文字
  8. var text = "测试文字内容";//设置文字内容
  9. var canvas = qrcode.find('canvas').get(0);
  10. var oldCtx = canvas.getContext('2d');
  11. var imgCanvas = document.getElementById('imgCanvas');
  12. var ctx = imgCanvas.getContext('2d');
  13. ctx.fillStyle = 'white';
  14. ctx.fillRect(0,0,imgCanvas.width,imgCanvas.height);
  15. ctx.putImageData(oldCtx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);
  16. ctx.fillStyle = 'red';
  17. ctx.strokStyle = 'rgb(1,1,0)';
  18. //ctx.stroke = 3;
  19. ctx.textBaseline = 'middle';
  20. ctx.textAlign = 'center';
  21. ctx.font = 'bolder 30px Helvetica';
  22. ctx.fillText(text, imgCanvas.width / 2, imgCanvas.height - 20);
  23. ctx.strokeText(text, imgCanvas.width / 2, imgCanvas.height - 20);
  24. imgCanvas.style.display = 'none';
  25. $('#imgCode').attr('src', imgCanvas.toDataURL('image/png')).css({
  26. maxWidth:300
  27. });

转: jquery.qrcode.js生成二维码插件&转成图片格式的更多相关文章

  1. 使用jquery.qrcode.js生成二维码

    通常生成二维码的方式有两种:第一种是java代码的形式,第二种是通过Js方式. 在这里我做个记录,用js生成二维码,可以在官网下载源码:http://jeromeetienne.github.io/j ...

  2. jquery.qrcode.js生成二维码(前端生成二维码)

    官网地址:http://jeromeetienne.github.io/jquery-qrcode/ 第一步引入插件: <script type='text/javascript' src='h ...

  3. jquery.qrcode.js 生成二维码并支持中文的方法

    GitHub地址: https://github.com/jeromeetienne/jquery-qrcode <div class="QR"></div> ...

  4. jquery.qrcode.js生成二维码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. js生成二维码并保存成图片下载

    我这里使用是jQuery,和jquery.qrcode.js,需要的可以自己找链接下载.示例代码仅做参考 html代码: <a id="downloadLink">&l ...

  6. QRCode.js生成二维码

    QRCode的GitHub地址: https://github.com/KeeeX/qrcodejs 该版本解决了主版本(https://github.com/davidshimjs/qrcodejs ...

  7. qrcode.js生成二维码因字符串过长而报错

    前端使用qrcode.js生成二维码的时候.有时候是会出现 qrcode length overflow (1632>1056) 目前使用的有效的解决办法是重新下载新版的qrcode.js 下载 ...

  8. 利用vcard和qrcode.js生成二维码导入联系人

    vCard是一种容许交换个人信息的数据规范,vCard数据格式的标识符是VCARD,vCard数据格式行是: 类型 [;参数]:值,具体的介绍百度都有,我们可以通过vcard来进行通讯录的保存,名片的 ...

  9. 【QRcode二维码】:使用JS前端插件QRcode.js生成二维码

    1.先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取), qrcode.js 是实现二 ...

随机推荐

  1. [UE4]C++实现动态加载的问题:LoadClass<T>()和LoadObject<T>() 及 静态加载问题:ConstructorHelpers::FClassFinder()和FObjectFinder()

    转自:http://aigo.iteye.com/blog/2281558 动态加载UObject和动态加载UClass分别用LoadObject<T>(),和LoadClass<T ...

  2. Go语言 函数,工程管理

    Go语言 函数,工程管理 1.无参无返回值函数的使用 package main import "fmt" func main() { // 无参无返回值函数的调用:函数名() fu ...

  3. Ribbon Workbench 与此流程相关的流程操作未激活

    问题描述:使用Ribbon Workbench 打开解决方案时报 :与此流程相关的流程操作未激活 解决方法 :ribbon 导航--系统定置--流程中心--流程--CustomiseRibbon -- ...

  4. video兼容--可用

    兼容ie6,7,8,但是播放器会卡顿黑屏<!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  5. 第11章 拾遗5:IPv6和IPv4共存技术(1)_双栈技术和6to4隧道技术

    6. IPv6和IPv4共存技术 6.1 双栈技术 (1)双协议主机的协议结构 (2)双协议栈示意图 ①双协议主机在通信时首先通过支持双协议的DNS服务器查询与目的主机名对应的IP地址. ②再根据指定 ...

  6. 第9章 应用层(2)_动态主机配置协议(DHCP)

    2. 动态主机配置协议(DHCP) 2.1 静态地址和动态地址的应用场景 (1)静态地址应用场景 ①IP地址不经常更改的设备(如服务器地址) ②使用有规律的IP地址以便于管理(如学校机房为方便教师管理 ...

  7. cobbler部署centos6与centos7系列

    cobbler部署centos6与centos7系列 转载自:http://www.jianshu.com/p/a4bed77bf40d 版权声明:完全抄自 http://www.jianshu.co ...

  8. HTTP请求返回值所代表的含义

    一些常见的状态码为: 200 - 服务器成功返回网页(表示请求成功) 404 - 请求的网页不存在(可能是网络的问题,也可能是网页没办法访问不代表网页不存在) 503 - 服务器超时(服务器故障) 下 ...

  9. LeetCode 1:1. 两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元 ...

  10. Linux下安装PHP+Nginx+Msql

    安装Nginx: 1.先指定个文件存放位置  usr/local/src 2. 下载nginx,  wget http://nginx.org/download/nginx-1.12.0.tar.gz ...