分享一個(gè)在線二維碼生成器(基于qrcode.js開發(fā))
一種二維碼掃描與生成的工具, 它可生成個(gè)性化二維碼, 支持文本、網(wǎng)址、圖片、短信、電話等格式及主題,提供融合碼功能
演示地址
https://qrcode.gitapp.cn
關(guān)鍵代碼
var qrcode = new QRCode(document.getElementById("qrcode"), { ? ?text: "", ? ?width: 288, ? ?height: 288, ? ?colorDark: "#000000", ? ?colorLight: "#ffffff", ? ?correctLevel: QRCode.CorrectLevel.H
});// 調(diào)用qrcode.makeCode(content); // make another code.
二維碼知識(shí)
二維碼(QR code)是一種用于快速讀取和存儲(chǔ)信息的矩陣式二維碼符號(hào)。它是由日本Denso公司于1994年9月研制的一種條碼技術(shù),具有高效、可靠、靈活和廣泛等特點(diǎn)。
二維碼由一些黑色和白色的小方塊組成,這些方塊按照特定的規(guī)則排列。通過使用不同的黑白方塊組合,可以編碼各種類型的數(shù)據(jù),包括文本、URL、電話號(hào)碼、電子郵件地址、圖片、視頻等。 使用二維碼可以方便地將信息傳輸?shù)狡渌O(shè)備或與互聯(lián)網(wǎng)連接的設(shè)備上。例如,您可以將二維碼保存到手機(jī)相冊(cè)中,然后使用手機(jī)應(yīng)用程序掃描該二維碼,以訪問鏈接、下載文件、獲取信息等。 由于二維碼的靈活性和普遍性,它們已經(jīng)廣泛應(yīng)用于各種領(lǐng)域,如商業(yè)、醫(yī)療保健、教育、物流、娛樂等。
二維碼的生成原理涉及到編碼過程和糾錯(cuò)碼的生成。以下是基本的步驟:
1.數(shù)據(jù)編碼:首先,需要將需要存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制碼。這個(gè)過程可以通過將數(shù)據(jù)轉(zhuǎn)換為ASCII碼,然后再將ASCII碼轉(zhuǎn)換為二進(jìn)制碼實(shí)現(xiàn)。
2.生成糾錯(cuò)碼:為了提高二維碼的識(shí)別率,需要為每個(gè)字符生成一組糾錯(cuò)碼。糾錯(cuò)碼的作用是檢測(cè)和修正錯(cuò)誤,通常采用的是Reed-Solomon編碼。這種算法可以檢測(cè)并修正一定數(shù)量的錯(cuò)誤,從而確保二維碼的可靠性。
3.模塊排列:將數(shù)據(jù)和糾錯(cuò)碼按照一定的規(guī)則排列到二維碼矩陣中。具體的排列方式取決于二維碼的類型和版本。
QR碼支持如下的編碼:
Numeric mode 數(shù)字編碼,從0到9。如果需要編碼的數(shù)字的個(gè)數(shù)不是3的倍數(shù),那么,最后剩下的1或2位數(shù)會(huì)被轉(zhuǎn)成4或7bits,則其它的每3位數(shù)字會(huì)被編成 10,12,14bits,編成多長還要看二維碼的尺寸
Alphanumeric mode 字符編碼。包括 0-9,大寫的A到Z(沒有小寫),以及符號(hào)$ % * + – . / : 包括空格。這些字符會(huì)映射成一個(gè)字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值) 編碼的過程是把字符兩兩分組,然后轉(zhuǎn)成下表的45進(jìn)制,然后轉(zhuǎn)成11bits的二進(jìn)制,如果最后有一個(gè)落單的,那就轉(zhuǎn)成6bits的二進(jìn)制。而編碼模式和字符的個(gè)數(shù)需要根據(jù)不同的Version尺寸編成9, 11或13個(gè)二進(jìn)制
參考github
https://github.com/davidshimjs/qrcodejs