要想了解為什么二維碼可以存儲(chǔ)那么多信息,或者擁有如此多排列可能,每天要生成那么多二維碼,為什么不會(huì)有一模一樣的生成呢!我們要先了解二維碼的生成原理和工作方式。
二維碼又稱QRCode,QR全稱QuickResponse,是一個(gè)近幾年來移動(dòng)設(shè)備上超流行的一種編碼方式,它比傳統(tǒng)的BarCode條形碼能存更多的信息,也能表示更多的數(shù)據(jù)類型:比如:字符,數(shù)字,日文,中文等等。
二維碼一共有40個(gè)尺寸。官方叫版本Version。Version1是21x21的矩陣,Version2是25x25的矩陣,Version3是29的尺寸,每增加一個(gè)version,就會(huì)增加4的尺寸,公式是:(V-1)*4+21(V是版本號(hào))最高Version40,(40-1)*4+21=177,所以最高是177x177的正方形。
簡單來說,二維碼組合方式多,生成的信息容量大不會(huì)影響使用。每個(gè)二維碼承載的信息都是一個(gè)獨(dú)特的信息,不會(huì)出現(xiàn)重復(fù)的情況。
所以不用擔(dān)心二維碼多重復(fù)的情況。
二維碼是用某種特定的幾何圖案按照一定的規(guī)律在平面中分布的黑白相間的圖形記錄數(shù)據(jù)符號(hào)第一代條碼技術(shù),它是由一個(gè)二維碼矩陣圖形和一個(gè)二維碼號(hào)以及下方的說明文字組成的,它具有信息量大、糾錯(cuò)能力強(qiáng)、識(shí)讀速度快、全方面識(shí)讀等特點(diǎn),手機(jī)二維碼是可以印刷在報(bào)紙、雜志、廣告、圖書包裝等多種載體長,通過解碼器也就是掃描軟件解讀其內(nèi)容,通常這個(gè)內(nèi)容是一個(gè)網(wǎng)址或者是一組數(shù)字或文字。
所謂的,二維碼可以記錄地球上的每一粒沙子,這句話,是真的!并不是夸大其實(shí)
修改一下,再仔細(xì)講一講!這次圖文并茂的講!
二維碼就是把信息翻譯成黑白小方塊,然后填到這個(gè)大方塊里。
這有點(diǎn)類似于中學(xué)考試中用的答題卡,就是把信息變成機(jī)器可掃描的圖案,一秒鐘就能知道你得了多少分。當(dāng)然,二維碼的原理和答題卡還不太一樣,這個(gè)我們稍后會(huì)講到。
我們先來介紹二維碼的哥哥——條形碼,也就是超市收銀員掃的那個(gè)黑白條。電腦在水平方向上識(shí)別粗細(xì)不均的黑白條,就能找出藏在其中的商品編號(hào)信息。
相比于只在一個(gè)維度上攜帶信息的條形碼,“二維碼”在水平、垂直兩個(gè)維度上,都攜帶了信息,也就做成了這個(gè)方塊狀的樣子。
條形碼和二維碼這一對好兄弟,說白了,其實(shí)就是給數(shù)字、字母、符號(hào)等這些字符,換了一身衣服,把它們打扮成了能被手機(jī)相機(jī)識(shí)別的黑白條或塊。
那么,最關(guān)鍵的問題來了,這些字符,到底是怎么變成這種二維碼圖案的呢?
這就要提到一個(gè)人類具有劃時(shí)代意義的偉大發(fā)明:二進(jìn)制。
我們平時(shí)使用的數(shù)字、字母、漢字等各種字符,雖然畫風(fēng)完全不同,但是機(jī)智的人類,發(fā)明了一個(gè)方法,使它們都可以被統(tǒng)一轉(zhuǎn)換成由0和1組成的二進(jìn)制數(shù)字序列。
這個(gè)轉(zhuǎn)換的過程叫做編碼。國際上有幾套通用的編碼規(guī)則,我們今天就用一個(gè)例子來感受一下,編碼是怎么回事(字幕QR碼通用編碼規(guī)則ISO18004)。
比如AB這個(gè)由兩個(gè)英文字母組成的字符。
根據(jù)編碼規(guī)則,每一個(gè)獨(dú)立的英文字母都有唯一一個(gè)十進(jìn)制數(shù)字與之對應(yīng)(畫表)。
而像AB這樣的字符串,則要在對應(yīng)數(shù)字的基礎(chǔ)上再做運(yùn)算。,
而運(yùn)算結(jié)果再轉(zhuǎn)化成二進(jìn)制,就是這一串?dāng)?shù)字。
哦對了,整個(gè)計(jì)算機(jī)和互聯(lián)網(wǎng)文明,都是建立在這種二進(jìn)制編碼上的。你現(xiàn)在看的這個(gè)視頻,在你的手機(jī)里,其實(shí)也只是一串0和1而已。、
=======我是分割線==========
我們回到二維碼的生成原理上。字符在變成只有0和1組成的數(shù)字序列后,再進(jìn)行一系列優(yōu)化算法,就得到了最終的二進(jìn)制編碼。
在最后這串編碼中,一個(gè)0對應(yīng)的就是一個(gè)白色小方塊,一個(gè)1對應(yīng)的就是一個(gè)黑色小方塊,我們把這些小方塊,按照8個(gè)一組,填進(jìn)大方塊里,這就是一個(gè)完整的,可以被手機(jī)相機(jī)識(shí)別的二維碼圖案了。
這就是二維碼的基本原理了。