二維碼的原理是什麼?

近些年來興起的二維碼,讓大家只要掃一掃就能輕鬆獲取各種信息或進行電子支付。這些黑白小方塊看似簡單,能儲存的信息卻不少。

在二維碼出現之前,我們經常打交道的是商品上的條形碼,也就是一維碼,二維碼就是在此基礎上增加了一個維度。它們的原理相似,都是以二進制(0和1)的方式編碼信息,只不過條形碼僅橫向編碼信息,而方塊狀的二維碼則是在橫向和縱向都可編碼信息,因此,二維碼所能編碼的信息約為條形碼的350倍

二維碼中的白色小方塊通常代表“0”,而黑色小方塊代表“1”,單純的0和1怎麼對應上五花八門的字符呢?如果你有無限量的0和1就可以做到,通過不同的排列組合,世界上所有文字和圖像都可以被翻譯為這兩個簡單的數字,讓計算機能夠讀懂。

除了編碼呈現給用戶的信息,二維碼還需要其他模塊,比如糾錯碼。糾錯碼給予了二維碼一定的容錯度,從7%到30%不等,日常使用的二維碼一般擁有15%的容錯度。也就是說即使二維碼某部分發生了汙損或黑白顛倒,依然能夠被順利識別。這就是為什麼你可以在二維碼的中央插入自定義圖片,而不影響掃碼。

不過如果3個角上的大方塊發生了遮擋,糾錯碼也無能為力,這是因為這3個方塊是用來定位二維碼的位置探測圖形,沒有它們,機器就認不出這是個二維碼。為什麼不是4個呢?因為3個點就足以確定這個矩形的範圍和方向了。


分享到:


相關文章: