zoukankan      html  css  js  c++  java
  • jQuery生成二维码

    一、简要介绍

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

      1、github源码地址:https://github.com/jeromeetienne/jquery-qrcode

      2、参数说明

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

    二、准备工作

      1、下载jQuery生成二维码的插件

      资源链接:百度云:链接:https://pan.baidu.com/s/1o9oBB54 密码:h4x8

      2、每个js文件均引入插件

    <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src="js/jquery.qrcode.min.js"></script>

    三、使用实例

      实例1:

    <div id="code"></div>
    <script type="text/javascript">
        //任意字符串 生成二维码
        //默认使用Canvas画图  
        $("#code").qrcode("https://hao.360.cn/?src=bm");
    </script>

      效果图:

      实例2

    <div id="code"></div>
    <script type="text/javascript">
            //table 模式兼容 IE低版本
            $("#code").qrcode({
            render:'table',
            "100",
            height: "100",
            text:"https://hao.360.cn/?src=bm"
        });
    </script>

      效果图:

      实例3(中文支持):

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

      <div id="code"></div>
        <script>
            //如果内容中有中文,在生成二维码钱就要把字符串转换成utf-8
            function toUtf8(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;
            }
    
            $('#code').qrcode({
                text: toUtf8('我在学jQuery生成二维码'),
                 150,
                height: 150
            });
        </script>

      效果图:

      实例4:

    <div id="code"></div>
        <script>
            //如果内容中有中文,在生成二维码钱就要把字符串转换成utf-8
            function toUtf8(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;
            }
    
            $('#code').qrcode({
                text: toUtf8('我在学jQuery生成二维码'),
                 150,
                height: 150,
                background: '#f00',  
                foreground: '#0f0' 
            });
        </script>

      效果图:

      实例5:

    <div id="code"></div>
        <script>
            //如果内容中有中文,在生成二维码钱就要把字符串转换成utf-8
            function toUtf8(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 属性的值长度不能太长,最大字节数 10208  
            //text 字符串太长 微信/支付宝等扫一扫无法识别,微博识别内容更多  
            //微博扫一扫:大约200 字以内,微信扫一扫:大约 160字以内,支付宝扫一扫:大约130字符以内  
            $('#code').qrcode({  
                text: toUtf8('SignalR 是 ASP.NET 团队正在开发的一个 Microsoft .NET Framework 库和 jQuery 插件,可能包括在以后版本的 ASP.NET 平台中。 它提供了一些前景极为光明的功能,而这些功能正是,并且是越来越多的,当前不曾具有的,'),  
                 150,  
                height: 150  
            });  
        </script>

      效果图:

      实例6:

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

      效果图:

  • 相关阅读:
    Ubuntu16.04+GTX2070+Driver418.43+CUDA10.1+cuDNN7.6
    N皇后问题
    Linux Bash之通配符
    Linux Bash之正则表达式
    Linux Bash文本操作之grep篇
    Linux Bash文本操作之sed篇其二
    Integer对象两种创建方式的比较
    Class文件版本号
    group by、group_concat()、if()
    字节码命令与Java语言在语义描述能力上的差异
  • 原文地址:https://www.cnblogs.com/javahr/p/8280331.html
Copyright © 2011-2022 走看看