C# 產生二維碼

來源:互聯網
上載者:User

標籤:

  二維碼又稱 QR Code,QR 全稱 Quick Response,是一個近幾年來行動裝置上超流行的一種編碼方式,它比傳統的 Bar Code 條碼能存更多的資訊,也能表示更多的資料類型:比如:字元,數字,中文等等。今天就來跟大家分享一下我的二維碼產生解析工具,主要功能就是產生二維碼,並且可以添加自訂的Logo。當然,網路上面產生二維碼的工具多如牛毛,產生二維碼早已不再新鮮。這個工具的一個亮點就是可以識別二維碼,下面就來具體看看吧,不過首先要補充一點二維碼的知識。

 一、二維碼基礎知識 一、二維碼的版本

  首先,我們先說一下二維碼一共有 40 個尺寸。官方叫版本 Version。Version 1 是 21 x 21 的矩陣,Version 2 是 25 x 25 的矩陣,Version 3 是 29 的尺寸,每增加一個 version,就會增加 4 的尺寸,公式是:(V-1)*4 + 21(V是版本號碼) 最高 Version 40,(40-1)*4+21 = 177,所以最高是 177 x 177 的正方形。

下面我們看看一個二維碼的執行個體:

二、QR碼的容錯處理

二維碼支援錯誤修正處理;錯誤修正處理相對複雜,按照QR碼的標準文檔說明,QR碼的錯誤修正分為4個層級,分別是:

  • level L : 最大 7% 的錯誤能夠被糾正;
  • level M : 最大 15% 的錯誤能夠被糾正;
  • level Q : 最大 25% 的錯誤能夠被糾正;
  • level H : 最大 30% 的錯誤能夠被糾正;
 三、二維碼(QR Code)的容量

  對於不同版本的二維碼,容量也是不同的。理論上內容經過壓縮處理後可以存7089個數字,4296 個字母和數字混合字元,2953個8位位元組資料,1817個漢字;在上面我們看到,不同的Version的QR Code是不同的矩陣,Version版本越過,也就意味著容量越大。關於容量的計算我沒有找到比較權威的演算法,這裡以第一版的來進行計算,第一版(21×21)的格式如下:

其中的只有黃色的是儲存資料的內容,在第一版本中只有217(21×21 - 8*9*3 -8)個儲存資料的數空間,而其中有用的資料是 217 - 1個資料結尾標誌 = 216 ,在216bit 

216bit/8 = 27Byte 在版本一的QR碼中只能夠儲存27Byte的資料(要是有校正容錯就更少了),當然在不同的容錯層級下,容量也是有變化的。

所以,version為1的QR Code大概也就能容下十幾個字元。

 

四、二維碼的編碼

QR 代碼支援如下的編碼:

  Numeric mode 數字編碼,從 0 到9。如果需要編碼的數位個數不是 3 的倍數,那麼,最後剩下的 1 或 2 位元會被轉成 4 或 7bits,則其它的每 3 位元字會被編成 10,12,14bits,編成多長還要看二維碼的尺寸(下面有一個表 Table 3 說明了這點)

  Alphanumeric mode 字元編碼。包括 0-9,大寫的A到Z(沒有小寫),以及符號$ % * + – . / : 包括空格。這些字元會映射成一個字元索引表。如下所示:(其中的 SP 是空格,Char 是字元,Value 是其索引值) 編碼的過程是把字元兩兩分組,然後轉成下表的 45 進位,然後轉成 11bits 的二進位,如果最後有一個落單的,那就轉成 6bits 的二進位。而編碼模式和字元的個數需要根據不同的 Version 尺寸編成9, 11 或 13 個二進位(如下表中 Table 3)

Byte mode, 位元組編碼,可以是0-255 的 ISO-8859-1 字元。有些二維碼的掃描器可以自動檢測是否是 UTF-8 的編碼

 

 參考資源

http://www.cnblogs.com/yunfeifei/p/4305943.html

http://www.cnblogs.com/cheng5x/p/3774767.html

C# 產生二維碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.