二维码生成插件(jquery.qrcode.js)说明文档

jquery.qrcode.js 是一个纯浏览器用于生成二维码图片的插件,生成的 QRcode 无需下载图片,并且不依赖第三方服务,下面插件使用的是压缩版本,大小不超过4K

qrcode.js 是实现二维码数据计算的核心类,

jquery.qrcode.js 是把它用jquery方式封装起来的,用它来实现图形渲染,其实就是画图(支持canvas和table两种方式)默认是canvas,canvas方式还支持右键图片下载

使用方法(jquery.qrcode.min.js)-----轻量级实现方式,减少图片IO,节省流量

载入 JavaScript 文件

1 <script src="jquery.qrcode.min.js "></script>     //二维码生成插件库
2 <script src="jquery.js "></script>                //jquery库

DOM结构

<div id="qrcode"></div>                        //生成二维码容器

调用

 1 <script>
 2       //jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的,这个方法默认会获取它的 Unicode 编码,一般的解码器都是采用UTF-8, ISO-8859-1等方式。
 3       //英文是没有问题,如果是中文,一般情况下Unicode是UTF-16实现,长度2位,而UTF-8编码是3位,这样二维码的编解码就不匹配了。
 4       //解决方式当然是,在二维码编码前把字符串转换成UTF-8,具体代码如下:
 5       function utf16to8(str) {
 6           var out, i, len, c;
 7           out = "";
 8           len = str.length;
 9           for (i = 0; i < len; i++) {
10               c = str.charCodeAt(i);
11               if ((c >= 0x0001) && (c <= 0x007F)) {
12                   out += str.charAt(i);
13               } else if (c > 0x07FF) {
14                   out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
15                   out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
16                   out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
17               } else {
18                   out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
19                   out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
20               }
21           }
22           return out;
23       }
24
25           jQuery(‘#qrcode‘).qrcode({
26               render: "canvas",//设置渲染方式(有两种方式 table和canvas,默认是canvas)
27               text: utf16to8("gyc://gyyx.cn/108319270eb7fecb321654c0?s=测试文字"),
28               width: 161,
29               height: 161,
30               background: "#ffffff",//背景颜色
31               foreground: "#000000", //前景颜色
32               correctLevel :0,//纠错等级
33           });
34 </script>

使用方法(qrcode.js)------重量级实现方式,对于简单应用来讲开发成本较高

载入 JavaScript 文件

1 <script src="jquery.qrcode.min.js "></script>     //二维码生成插件库

DOM结构

1 <div id="qrcode"></div>                        //生成二维码容器

调用

 1  <script>
 2      // 简单方式
 3 new QRCode ( document.getElementById ( ‘qrcode‘ ) , ‘your content‘ );
 4 // 设置参数方式
 5 var qrcode = new QRCode ( ‘qrcode‘, {
 6                     text: ‘your content‘,
 7                     width: 256,
 8                     height: 256,
 9                      colorDark : ‘#000000‘ , //前景色
10                      colorLight : ‘ #ffffff ‘ , //背景色
11                     correctLevel : QRCode.CorrectLevel.H  //纠错等级
12 });
13 // 使用 API
14 qrcode.clear();  //清除二维码。(仅在不支持 Canvas 的浏览器下有效)
15 qrcode.makeCode(‘new content‘);   //设置二维码内容,生成二维码
16 </script>

前方高能,避免入坑  (⊙o⊙)

  • 使用的qrcode插件库不同,调用使用方法不同,在项目开发中一定要注意自己使用的是哪个,避免出现引用插件和调用方式不同造成的开发错误,比如无二维码生成、脚本报错(文档开始进行了详细的讲解和对比
  • 二维码包含的信息太长,导致二维码识别度太低扫不出来,建议文本二维码的文字数量不超过150字(低端手机也能扫描)
  • 二维码编码前把字符串转换成UTF-8避免参数存在中文时造成的不识别
  • 容错率参数设置

二维码容错率即是指二维码图标被遮挡多少后,仍可以被扫描出来的能力。容错率越高,则二维码图片能被遮挡的部分越多。

容错的原理是二维码在编码过程中进行了冗余,就像是123被编码成123123,这样只要扫描到一部分二维码图片,二维码内容还是可以被全部读到。

大多数情况下,我们强烈建议采用30%的容错率(对目前主流手机,在绝大多数扫描场景下,容错率越高,越容易被快速扫描!!!)

  1.   qrcode.js

correctLevel : QRErrorCorrectLevel.L,  (7%)

correctLevel : QRErrorCorrectLevel.M, (15%)

correctLevel : QRErrorCorrectLevel.Q, (25%)

correctLevel : QRErrorCorrectLevel.H, (30%)

2.    jquery.qrcode.min.js

correctLevel :1,

correctLevel :0,

correctLevel :3,

correctLevel :2,

  • 二维码美化之颜色搭配(避免背景色和底图融合,导致扫描不出来二维码)

二维码扫描器是根据条码的颜色反差 (Color Contrast) 而识别,因此以黑白颜色配搭效果最好

二维码美化的颜色搭配,前景色和背景色过于相近也会导致二维码无法扫描,二维码的前景色必须比背景色更深

原文地址:https://www.cnblogs.com/Im-Victor/p/12297331.html

时间: 2024-08-28 12:00:15

二维码生成插件(jquery.qrcode.js)说明文档的相关文章

jquery二维码生成插件jquery.qrcode.js

插件描述:jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码. 转载于:http://www.jq22.com/jquery-info294 如何使用它 将jquery.qrcode.min.js和jquery添加到您的网页中 <script src="jquery.min.js"></script> <script type="text/javascrip

javaScript生成二维码(改造jquery.qrcode.js,使之支持中文,能带logo)

最近公司要求使用javaScript生成二维码,在网上搜了很多相关的资料,都不是很全面,俗话说:自己动手,丰衣足食. (这里吐槽下,有网友有了解决方案,却刻意把源代码压缩了,导致不知道改了什么东西,知识大家一起学习嘛,授人与鱼不如授人与渔!) 总结如下: 资料搜索 选择star最多的两个 第一个就是用的比较多的jquery.qrcode.js(但不支持中文,不能带logo)啦,第二个支持ie6+,支持中文,根据第二个源代码,使得,jquery.qrcode.js,支持中文. 支持中文 1 //q

JS二维码生成插件,一键生成二维码

jquery.qrcode是个依赖jquery的二维码生成插件,主要用于连接和文本的二维码生成,有两种生成格式canvas和table格式的,当然canvas不支持低版本浏览器,table有点小bug,但是没啥大问题.建议使用在移动端上. 这儿插件可以扩展开发,本来也是MIT协议的东西,后期我有可能会加点其他的功能,目前考虑的是加logo了,其他的再说. 这个js插件可以点击生成,列表生成都是可以的,写的方法跟JQ是一样的,不懂得可以留言. [github地址:https://github.co

二维码生成插件

(vue)二维码生成插件 一.vue-qr二维码插件(Image版) 1. 安装 // 使用node的npm安装 npm install vue-qr --save // 使用yarn安装 yarn add vue-qr 2. 引用项目 <VueQr draggable="false" :correctLevel="3" :dotScale="1" :logoSrc="logo" :margin="15&quo

Chrome浏览器二维码生成插件

  猛击就可以使用啦->>>猛击使用   源码如下: 源码打包   源码: jquery-2.1.3.min.js jquery.qrcode.min.js https://github.com/jeromeetienne/jquery-qrcode spectrum.css spectrum.js https://github.com/bgrins/spectrum manifest.json { "manifest_version": 2, "name&

.NET 二维码生成(ThoughtWorks.QRCode)

引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string nr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4

Android 生成带Logo的二维码或普通的二维码,后续将会推出一个java exe二维码生成插件

前几天在做微信绑定的时候,利用 Google Zxing 完成了一系列项目需求,可能后续还会更进,做得更人性化,比如自定义二维码,自定义LOGO,单个二维码绑定硬件设备,绕过 官方API限制,达到扫一次绑定公众号的需要 这次就不贴代码了,另外我把生成和保存的代码都注释了,包括二维码内容的填充,保存地址,都有详细的标识,有时间就写一个java swing exe 插件给大家用,跨平台的那种, 就是不管你电脑里有没有装 java 都可以用的插件 这里我就不上代码了,上几个效果图给大家看看生成效果,然

NET 二维码生成

NET 二维码生成(ThoughtWorks.QRCode) 引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string nr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE

iOS开发 二维码生成

基于libqrencode的二维码生成 + (void)drawQRCode:(QRcode *)code context:(CGContextRef)ctx size:(CGFloat)size { unsigned char *data = 0; int width; data = code->data; width = code->width; float zoom = (double)size / (code->width + 2.0 * qr_margin); CGRect r