QRCode.js二维码生成并能长按识别

QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。

首先引入QRCode.js文件,下载地址

如果生成二维码的信息是固定不变的,那么当然不需要如此这般,网上有好多现成的二维码生成器,直接用就好。

可是,我的需求是这样的,二维码用于在微信或QQ中分享,根据不同的用户信息分别生成不同的二维码,这样就不能偷懒,就得用代码生成了,并且生成的二维码支持长按识别进入。

话不多说,直接上干货:

html部分:

<div id="codeBox">
 <div id="qrDiv" style="display: none;"></div>
 <div id="qrcode"></div>
</div>

js部分:实例化并进行参数设置:

var user_id="" //用户ID
user_id=getQueryString('user_id'); //获取user_id参数
var url= '' //请求url
  $(function(){
  //生成二维码
  var downUrl=url+user_id;
  var qrcode = new QRCode("qrDiv", {
    text: utf16to8(Url),
    render: "canvas", //渲染方式有table方式(IE兼容)和canvas方式
    width: 128,
    height: 128,
    typeNumber:-1,//计算模式
    colorDark : "#000000",   //前景色
    colorLight : "#ffffff",   //背景色
    correctLevel : QRCode.CorrectLevel.H   //容错级别
  });
  var mycanvas1=document.getElementsByTagName('canvas')[0];
  //将转换后的img标签插入到html中
  var img=convertCanvasToImage(mycanvas1);
   $('#qrcode').append(img);//imagQrDiv表示你要插入的容器id
  })

  //从 canvas 提取图片 image
  function convertCanvasToImage(canvas) {
  //新Image对象,可以理解为DOM
  var image = new Image();
  // canvas.toDataURL 返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
    // 指定格式 PNG
  image.src = canvas.toDataURL("image/png");
    return image;
  } 

  //获取请求参数值
  function getQueryString(name) {
  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  var r = window.location.search.substr(1).match(reg);
  if (r != null) {
    return unescape(r[2]);
  }
  return null;
   }

  //中文编码格式转换
  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;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JS调用安卓手机摄像头扫描二维码

    项目要求: 使用H5模仿微信扫一扫付款功能 经过一系列的查找最后发现可以使用 JS调用手机摄像头然后用画布把当前摄像头的数据转成Base64的png图片,经过QrCode直接再本地识别. 优点: 兼容大多数浏览器 本地识别不占用服务端资源 代码比较简单只有一个页面 <html lang="ZH-CN"> <head> <meta charset="utf-8"> <title>Web QrCode Test</t

  • 如何基于原生javaScript生成带图片的二维码

    这篇文章主要介绍了如何基于原生javaScript生成带图片的二维码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用链接生成二维码主要是使用qr.js或者其他,把链接转化为二维码的形式,在使用canvas时需要设置画布的尺寸,生成的颜色. <div class="qr_code"> <img src="" id="imgcode" /> <canvas ref=

  • Angular JS 生成动态二维码的方法

    一.场景 二维码的场景,很多.这里是二维码一种小场景,比如分享一个链接,商品链接,项目链接,优惠券链接- 技术实现,如果用后端实现,需要构造输出一个图片流.或者后端生产二维码图片,给图片地址就好了.弊端,这个二维码就是一个链接,后端的文件 IO 操作,还得考虑存储.太费力. 如果前端实现,这样就很轻松了.这只是个分享二维码,分享出去给人家扫一扫.利用前端的 canvas,这里坐下调研. jq 封装的 qrcode.js ,文章网上一大堆. angular js :https://github.c

  • JS实现鼠标移上去显示图片或微信二维码

    废话不多说了,直接给大家贴代码了. <html> <head> <script type="text/javascript"> function showImg(){ document.getElementById("wxImg").style.display='block'; } function hideImg(){ document.getElementById("wxImg").style.displa

  • js canvas实现二维码和图片合成的海报

    本文实例为大家分享了canvas二维码和图片合成海报的具体代码,供大家参考,具体内容如下 思路:在微信中登录,后台传来的是一个链接.一个名字.一张图片.把图片当做背景,画满整个画布.之后需要把链接转为二维码,使用jq.qrcode转化,转化完成后是一个canvas,把这个canvas再转成一张图片,画到大的画布上.把名字画到画布上.把整张画布转为图片. 一.定义画布和合成海报的img <style type="text/css"> #canbox { width: 100%

  • nodejs动态创建二维码的方法

    本文实例为大家分享了nodejs动态创建二维码的具体代码,供大家参考,具体内容如下 <!--弹出二维码--> <div class="qrcode"> <div> <p id="saoma">扫描二维码</p> </div> </div> js代码: $.ajax({ type: 'POST', url: '/house', data: { data:'你的数据' }, dataTy

  • nodejs实现超简单生成二维码的方法

    本文实例讲述了nodejs实现超简单生成二维码的方法.分享给大家供大家参考,具体如下: 一开始使用node-qrcode(https://github.com/soldair/node-qrcode),结果安装的时候需要安装python,且不支持python3.0以上,安装python2.0的时候又需要安装其他的环境,所以放弃了. 最后选择了一个小众的插件qr-image(https://github.com/alexeyten/qr-image) 前台页面如下 views/index.ejs

  • JS实现将链接生成二维码并转为图片的方法

    本文实例讲述了JS实现将链接生成二维码并转为图片的方法.分享给大家供大家参考,具体如下: <div id="code"></div> <img id="img"/> <script type="text/javascript"> var qrcode=$("#code").qrcode({ render:'canvas||table', width: 200, //宽度 heig

  • QRCode.js二维码生成并能长按识别

    QRCode.js 是一个用于生成二维码的 JavaScript 库.主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库. 首先引入QRCode.js文件,下载地址 如果生成二维码的信息是固定不变的,那么当然不需要如此这般,网上有好多现成的二维码生成器,直接用就好. 可是,我的需求是这样的,二维码用于在微信或QQ中分享,根据不同的用户信息分别生成不同的二维码,这样就不能偷懒,就得用代码生成了,并且生成的二维码支持长按识别进入. 话不多说,直接上干货: htm

  • Java实现二维码生成的代码方法

    1.支持QRcode.ZXing 二维码生成.解析: 2.QRCode 方式生成二维码支持添加图片,如下: package common; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Has

  • 基于jquery二维码生成插件qrcode

    本文将介绍一款基于jquery的二维码生成插件qrcode,在页面中调用该插件就能生成对应的二维码. 1.首先在页面中加入jquery库文件和qrcode插件. <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.qrcode.min.js">&

  • Python二维码生成库qrcode安装和使用示例

    二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave公司于 1994 年发明.现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询.社交好友互动.网络地址访问等等. 安装 Python 的二维码库 -- qrcode 由于生成 qrcode 图片需要依赖 Python 的图像库,所以需要先安装 Python 图像库 PIL(Python Imaging Library),不然会遇到 "ImportE

  • java实现二维码生成的几个方法(推荐)

    java实现二维码生成的几个方法,具体如下: 1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip 这个是日本人写的,生成的是我们常见的方形的二维码 可以用中文 如:5677777ghjjjjj 2: 使用BarCode4j生成条形码和二维码 BarCode4j网址:http://sourcefor

  • 基于google zxing的Java二维码生成与解码

    本文实例为大家分享了Java二维码生成与解码的具体代码,供大家参考,具体内容如下 一.添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包) <!-- google二维码工具 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.1.0</version> &

  • php二维码生成以及下载实现

    本文实例为大家分享了php二维码生成以及下载的具体代码,供大家参考,具体内容如下 <?php //引入phpqrcode库文件 define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); include('includes/phpqrcode.php'); // 二维码数据 $data = 'http://www.baidu.com'; $filename = 'shopEwm/'.'baidu.png';

  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法. (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成[QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式] * @param string $data 二维码包含的信息,可以是数字.字符.二进制信息.汉字.不能混合数据类型,数据必须经过UTF-8 URL-encoded.如果需要传递的信息超过2K个字节,请使用POST方式 * @param int $widhtHeig

  • 二维码生成Java实现代码

    本文实例为大家分享了二维码生成Java实现代码,供大家参考,具体内容如下 package com.yihaomen.barcode; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import java.awt

  • 详解二维码生成工厂

    本次主要分享的是3个免费的二维码接口的对接代码和测试得出的注意点及区别,有更好处理方式多多交流,相互促进进步:最近在学习JavsScript的扩展TypeScript,感觉语法糖很甜,大部分与C#更为类似,可能都是微软项目的原因吧,有兴趣的朋友可以多多相互交流下: 以上是个人的看法,下面来正式分享今天的文章吧: Google的Api二维码生成接口 2d-code的Api二维码生成接口 topscan的Api二维码生成接口 使用面向对象+加载程序集创建对象合并以上接口封装成二维码生成工厂 下面一步

随机推荐