生成二维码的两种方式

  利用qrcode生成二维码,(qrcode矩形二维码符号)

  基于jquery的二维码生成插件qrcode,在页面中调用该插件就能生成对应的二维码。qrcode其实是通过使用jQuery实现图形渲染,画图,支持canvas(HTML5)和table两种方式:

使用插件时

1、首先在页面中加入jquery库文件和qrcode插件。

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

2、在页面中需要显示二维码的地方加入以下代码:

<div id="code"></div> 

3、调用qrcode插件。

qrcode支持canvas和table两种方式进行图片渲染,默认使用canvas方式,效率最高,当然要浏览器支持html5。直接调用如下:

$(‘#code‘).qrcode("http://www.helloweba.com"); //任意字符串 

您也可以通过以下方式调用:

$("#code").qrcode({     render: "table", //table方式     width: 200, //宽度     height:200, //高度     text: "www.helloweba.com" //任意内容 }); 

这样就可以在页面中直接生成一个二维码,你可以用手机“扫一扫”功能读取二维码信息。

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

以下示例:

var str = toUtf8("钓鱼岛是中国的!"); $(‘#code‘).qrcode(str); 

1、页面元素:地址输入框,canvas方式的显示div,table方式的显示div

[html] view plain copy

  1. <input id="urlIn" placeholder="请输入网址">
  2. <div class="qrCodeShow" id="canvas"></div>
  3. <div class="qrCodeShow" id="table"></div>

2、引入jquery支持及jquery.qrcode支持,这两个都比较好找

3、js控制二维码生成

[javascript] view plain copy

  1. $(function(){
  2. //获得焦点时添加url协议头http://
  3. $("#urlIn").focus(function(){
  4. $("#urlIn").val("http://");
  5. });
  6. //输入框失去焦点时显示输入框值
  7. $("#urlIn").blur(function () {
  8. $("#canvas").empty();
  9. $("#table").empty();
  10. var url = $("#urlIn").val();
  11. //            alert(url)
  12. //canvas方式生成二维码(二维码是一张图片)
  13. $("#canvas").qrcode(url);
  14. //table方式生成二维码(二维码是由<table>标签的单元格填黑白框的方式形成)
  15. $("#table").qrcode({
  16. render: "table",
  17. width: 200,
  18. height: 200,
  19. text: url
  20. })
  21. })
  22. })
以上就是代码,实际效果如下:

说说两者的区别:看起来两者生成的二维码是一样的,移动设备扫码后验证有效。canvas方式只有一句代码,table则有各种设置相对代码多些。但实际生成的两个二维码并不相同。

通过页面元素审查我们能够发现,canvas方式生成的实际是一张图片,而table方式生成的则是由html的<table>标签通过控制细密的单元格背景色的黑白来组成的二维码,一个点就是一个单元格。canvas方式生成的可直接以图片格式保存,而table的不能。canvas的容易放大失真,table的不易失真。

实际应用就看需求了,只是需要显示name两者皆可,若需要利于保存,则canvas的较为方便。

这是学习二维码时搜到的资料,为了完成毕业设计。资料来源于:http://blog.csdn.net/zx0717zx/article/details/53379212



时间: 2024-10-05 04:01:56

生成二维码的两种方式的相关文章

Web生成二维码的两种方式

方式1:使用sinaapp提供的接口生成,HTML代码如下: <html> <body> <h3>qrcode based on sinaapp:</h3> <img src=\'#\'" target=\"_blank\" href="http://qrcoder.sinaapp.com/?t=http://www.163.com">http://qrcoder.sinaapp.com?t=ht

PHP生成二维码的2种方式

伸展树模版真的好长好长... cut a b c:把第a-1个数伸展到根节点,把第b+1个数伸展到a的右子树,然后把ch[ch[root][1][0]]拿掉,放在剩下的树的第c个节点下. flip a b:把第a-1个数伸展到根节点,把第b+1个数伸展到a的右子树,然后翻转ch[ch[root][1][0]]: 由于会出现操作两边的情况,所以加了两个-1节点. 注意: 1,输出的时候要注意空格和换行. 2,在拿掉子树的时候要注意push_up(); #include<stdio.h> #inc

java生成二维码的几种方式

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

php生成二维码的几种方式[转]

二维码是二维条形码的一种,可以将网址.文字.照片等信息通过相应的编码算法编译成为一个方块形条码图案,手机用户可以通过摄像头和解码软件将相关信息重新解码并查看内容.PHP可以使用php QR Code类库生成二维码. 二维码的应用范围可以点这里(百度百科).1.google开放api$urlToEncode="http://gz.altmi.com";generateQRfromGoogle($urlToEncode);function generateQRfromGoogle($chl

在web页面上快速生成二维码的两种实用方法

二维码是桌面和移动端快速分享的高效手段之一,这里介绍两个不错的快速开发二维码的方法,和大家分享一下~~ 方法1:使用新浪提供的服务 这种方式简单快速,在服务端生成一个二维码的图片,兼容性比较好,你无需自己处理任何相关二维码的生成,只需要提供一端文字或者url即可,方法如下: <img src="http://qrcoder.sinaapp.com?t=http://www.gbtags.com"> 生成效果如下: 大家扫一扫就可以访问极客标签主站了~~ 方法2: 使用jQu

php生成二维码的几种方式整理及使用实例

hp生成二维码的方式:1.google开放api:2.php类库PHP QR Code:3.libqrencode:4.QRcode Perl CGI & PHP scripts感兴趣的朋友可以参考下哈. 1.google开放api 代码如下: $urlToEncode="http://bbs.lewanchina.com"; generateQRfromGoogle($urlToEncode); function generateQRfromGoogle($chl,$widh

php生成二维码的两种方法(转)

生成二维码程序在网上可以找到很多我们发现像google,还有一些国外站都提供了免费生成二维码的插件或api了,下面我来给大家介绍几种. 最简单最实例的goolge开源方法 1.google开放api 代码如下: $urlToEncode="http://gz.altmi.com";   generateQRfromGoogle($urlToEncode);   function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_leve

使用PHP生成二维码的两种方法(带logo图像)

一.利用Google API生成二维码 Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: $urlToEncode="http://www.jb51.net"; generateQRfromGoogle($urlToEncode); /** * google api 二维码生成[QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式] * @param string $chl 二维码包含的信息,可以是数字.字符.二进制信息

PHP生成带logo图像二维码的两种方法

本文主要和大家分享PHP生成带logo图像二维码的两种方法,主要以文字和代码的形式和大家分享,希望能帮助到大家. 一.利用Google API生成二维码Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $urlToEncode="http://www.php.cn"; generateQRfromGoogle($urlToEncode); /**