天天看點

HTML5筆記:利用JS生成中間帶logo的二維碼

描述: jquery.qrcode.js 是一個能夠在用戶端生成矩陣二維碼QRCode 的jquery插件 ,使用它可以很友善的在頁面上生成二維條碼。此插件是能夠獨立使用的,體積也比較 小,使用gzip壓縮後才不到4kb。因為它是直接在用戶端生成的條碼, 是以不會有圖檔下載下傳的過程,能夠實作快速生成。它是基于一個多語言的類庫封裝的,也不依賴于其他額外的服務。

好處:使用jquery-qrcode的好處,不需要在伺服器端生成多餘的二維碼圖檔,二維碼直接通過JavaScript直接在用戶端生成,有效減少帶寬,以及維護成本。
           

首先大家可以看一下jquery.qrcode.js官網,官網上也有例子。但是官網的 jquery.qrcode.js是不支援中文的,廢話不多說了,現在我們開始吧。

官網上的 qrcode.js 檔案裡沒有實作中文的支援和LOGO的添加,現在我們将這個檔案修改為jquery.qrcode.js檔案了。此外還需要一個對中文進行轉碼的檔案,該檔案為 utf.js。然後在 jquery.qrcode.js 檔案中調用了 utf.js 檔案的 utf16to8(str) 方法對其中文進行了轉碼。

下面是我寫的一個示例,該示例需要的js檔案有 jquery.qrcode.js 和 utf.js 以及 jquery-1.8.0.js 。可點選下載下傳檔案.還有一個 LOGO圖檔 就不上傳了。

調用的jsp代碼如下:
           
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
      pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>該二維碼支援中文和LOGO</title>
 8 
 9 <script type="text/javascript" src="jquery-1.8.0.js"></script>
10 <script type="text/javascript" src="utf.js"></script>
11 <script type="text/javascript" src="jquery.qrcode.js"></script>
12 <script type="text/javascript">
     $(document).ready(function() {
         $("#qrcodeCanvas").qrcode({
             render : "canvas",    //設定渲染方式,有table和canvas,使用canvas方式渲染性能相對來說比較好
             text : "這是修改了官文的js檔案,此時生成的二維碼支援中文和LOGO",    //掃描二維碼後顯示的内容,可以直接填一個網址,掃描二維碼後自動跳向該連結
             width : "200",               //二維碼的寬度
             height : "200",              //二維碼的高度
             background : "#ffffff",       //二維碼的後景色
             foreground : "#000000",        //二維碼的前景色
             src: 'photo.jpg'             //二維碼中間的圖檔
         });
     });
 </script>
25 
26 </head>
27 <body>
28     <center>
29       <h2>該二維碼支援中文和LOGO</h2>
30       <div id="qrcodeCanvas"></div>
31     </center>
32 </body>
33 </html>
           

繼續閱讀