隨著蘋果手機的研發(fā)及安卓系統(tǒng)的市場鋪張式的發(fā)展,使得二維碼,這個不起眼的黑白相間的小方塊,正在悄然改變著我們的生活方式。
當(dāng)你頻繁和它照面的時候,你有沒有過這樣的好奇:為什么用手機掃一下就會看到一個“花花世界”?二維碼的顏色為什么是黑白相間的呢?這些不規(guī)則幾何圖形中究竟藏著怎樣的“秘密”?
示意圖
常見的二維碼上為啥三個角上有方塊
這是三個定位點,圖形旋轉(zhuǎn)也不影響識別
要了解二維碼的原理,我們先要來好好認識一下它?,F(xiàn)在最常見的二維碼是OR二維碼(OR是一種碼制),我們便以它為例。
我們看一個二維碼,最先看到的當(dāng)然是幾何圖形。這些圖形中,藏了不少重要的“部件”。偶然物聯(lián)網(wǎng)商城邀請南京郵電大學(xué)計算機學(xué)院副教授黃海平給我們做了詳細分析。
首先,OR二維碼的三個“角”上有三個方塊,可別小瞧這方塊,它叫位置探測圖形。有了這三個點,不管是從哪個方向讀取二維碼,信息都可以被識別。即使將二維碼圖形旋轉(zhuǎn),也可以識別。也許你會問,為什么不是四個角上都有方塊呢?事實上,是可以設(shè)更多的點,但幾何知識告訴我們,3點就可以確定一個平面,節(jié)省出的一個角可以嵌入更多信息。
另外,二維碼上還有一些圖形混雜在幾何圖形中,是肉眼看不出來的,比如定位圖形和分隔符。定位圖形就是圖中連接三個位置探測圖形之間的兩根“線”,它的作用是決定二維碼符號中模塊的坐標(biāo),而分隔符的作用是將位置探測圖形與符號的其余部分分開。也就是說,通過掃描能讀取的數(shù)據(jù)信息在二維碼中的位置是由定位圖形和分隔符決定的。
還有兩個圖形肉眼也難以發(fā)現(xiàn),位于左下角位置探測圖形上面的是“版本信息”,每個二維碼都有一個版本號,我們常說的V1.0、V2.0就是版本;包圍在三個位置探測圖形周邊的則是“格式信息”,這指的是這個二維碼采用的編碼格式。[page]
二維碼為什么是黑白相間的
黑色表示二進制的“1”,白色表示二進制的“0”
“我們之所以對二維碼進行掃描能讀出那么多信息,就是因為這些信息被編入了二維碼之中。”黃海平說,“制作二維碼輸入的信息可以分成三類,文本信息,比如名片信息;字符信息,比如網(wǎng)址、電話號碼;還有圖片信息,甚至還可以包括簡短的視頻。”
數(shù)據(jù)信息是怎么被編入的呢?信息輸入后,首先要選擇一種信息編碼的碼制。現(xiàn)在常見的二維碼都是以QR碼作為編碼的碼制。
QR碼是矩陣式二維碼,它是在一個矩形空間內(nèi),通過黑、白像素在矩陣中的不同分布,來進行編碼的。我們知道電腦使用二進制(0和1)數(shù)來貯存和處理數(shù)據(jù),而在二維碼中,用黑白矩形表示二進制數(shù)據(jù)我們?nèi)庋勰芸吹降暮谏硎镜氖嵌M制“1”,白色表示二進制的“0”,黑白的排列組合確定了矩陣式二維條碼的內(nèi)容,以便于計算機對二維碼符號進行編碼和分析。