jquery.qrcode二维码插件生成彩色二维码

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

以下是测试代码(增加了颜色控制,可以设置4个区块的颜色值,需要指定render为table。),效果:
jquery.qrcode生成彩色二维码" src="http://www.jbxue.com/d/file/2014/08/20140808213149602.jpg" height="149" width="217">

完整代码:

复制代码 代码示例:

<html>
<head>
<title>JS生成二维码-www.jbxue.com</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));
   } // www.jbxue.com
  }
  return out;
 }
</script>
 
</body>
</html>

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

转载 http://www.jbxue.com/article/24133.html  收藏一下

时间: 2024-12-16 10:54:27

jquery.qrcode二维码插件生成彩色二维码的相关文章

Android之自定义生成彩色二维码

先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&

深挖JDK动态代理(二):JDK动态生成后的字节码分析

接上一篇文章深挖JDK动态代理(一)我们来分析一下JDK生成动态的代理类究竟是个什么东西 1. 将生成的代理类编程一个class文件,通过以下方法 public static void transClass() throws IOException { URL resource = rpcMain.class.getClass().getResource("/"); byte[] bts = ProxyGenerator.generateProxyClass("$Proxy0

使用jquery.qrcode生成二维码实现微信分享功能

前言: 最近有个这样的需求,在pc端的商品详情页增加分享功能. 微博分享.QQ好友分享.QQ空间分享这些都很常见.但是微信分享我还没有手动写过(以前改过). 最终效果如下图: 解决方案:使用jquery.qrcode插件生成二维码 jquery.qrcode cdn地址 参见: https://www.bootcdn.cn/jquery.qrcode/ 1.加载 jQuery 和 jquery.qrcode.js: <script src="https://cdn.bootcss.com/

iOS开发--二维码的生成

一.需要包含头文件 #import <CoreImage/CoreImage.h> 二.示例代码 -- 以下生成的二维码不够清晰 如图: 1 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ 2 3 // 0.导入头文件#import <CoreImage/CoreImage.h> 4 5 // 1.创建过滤器 -- 苹果没有将这个字符封装成常量 6 CIFilter

基于jquery的提示框JavaScript 插件,类Bootstrap

目录 基于jquery的提示框JavaScript 插件,类Bootstrap 基于jquery的提示框JavaScript 插件,类Bootstrap 源码 github地址: https://github.com/Ethan-Xie/message 实例 通过此此插件可以为提示栏添加自动/点击消失的功能 用法 需引入message.css与message.js <link rel="stylesheet" href="message.css"> &l

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

前端生成二维码插件jquery.qrcode.min.js

1.插件介绍 jquery.qrcode.min.js插件是jq系列的基于jq,在引入该插件之前要先引入jq.能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码. 闲话少说,看demo吧!(haha...) 2.快速使用demo 简单介绍:这是一款快速应用案例,没有太特殊的需求的话够用了.鉴于需求,本例是把二维码生成了图片,可以保存到手机,然后发送给好友,直接识别二维码. 1 <!DOCTYPE html> 2 <html> 3 &

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

jquery.qrcode.js 是一个纯浏览器用于生成二维码图片的插件,生成的 QRcode 无需下载图片,并且不依赖第三方服务,下面插件使用的是压缩版本,大小不超过4K qrcode.js 是实现二维码数据计算的核心类, jquery.qrcode.js 是把它用jquery方式封装起来的,用它来实现图形渲染,其实就是画图(支持canvas和table两种方式)默认是canvas,canvas方式还支持右键图片下载 使用方法(jquery.qrcode.min.js)-----轻量级实现方式

如何使用jquery.qrcode.js插件生成二维码

1.首先需要准备 jquery.qrcode.js 和 jquery.js github地址:https://github.com/lrsjng/jquery-qrcode 官方文档地址:http://larsjung.de/jquery-qrcode/ 2.然后创建jsp页面,将js引入页面.(此处需要注意的的是顺序不能颠倒,必须是jquery.js先引入) <script type="text/javascript" src="<%=request.getCo