二维码的原理
大家好我是狗蛋
不知不覺中,我們的生活到處充滿了二維碼。登錄賬戶需要二維碼;加好友需要二維碼;共享單車需要二維碼;商品包裝上也有二維碼;甚至連樓下賣水果的阿姨手里都拿張二維碼收款。那么,有沒有想過這個二維碼到底是什么東西呢?那么這個二維碼的圖案會不會多到不小心重合了呢?今天我來揭開二維碼神秘的面紗。
二維碼又稱QR Code,QR全稱Quick Response,是一個近幾年來移動設備上超流行的一種編碼方式,它比傳統的Bar Code條形碼能存更多的信息,也能表示更多的數據類型:比如:字符,數字,日文,中文等等。
QR碼的特點
1.存儲大容量信息
傳統的條形碼只能處理20位左右的信息量,與此相比,QR碼可處理條形碼的幾十倍到幾百倍的信息量。另外,QR碼還可以支持所有類型的數據。(如:數字、英文字母、日文字母、漢字、符號、二進制、控制碼等)。一個QR碼最多可以處理7089字(僅用數字時)的巨大信息量。
2.在小空間內打印
QR碼使用縱向和橫向兩個方向處理數據,如果是相同的信息量,QR碼所占空間為條形碼的十分之一左右。(還支持Micro QR碼,可以在更小空間內處理數據。)
3.有效表現各種字母
QR碼是日本國產的二維碼,因此非常適合處理日文字母和漢字。QR碼字集規格定義是按照日本標準“JIS第一級和第二級的漢字”制定的,因此在日語處理方面,每一個全角字母和漢字都用13比特的數據處理,效率較高,與其他二維碼相比,可以多存儲20%以上的信息。
4.對變臟和破損的適應能力強
QR碼具備“糾錯功能”,即使部分編碼變臟或破損,也可以恢復數據。數據恢復以碼字為單位(是組成內部數據的單位,在QR碼的情況下,每8比特代表1碼字),最多可以糾錯約30%(根據變臟和破損程度的不同,也存在無法恢復的情況)。
5.可以從任意方向讀取
QR碼從360°任一方向均可快速讀取。其奧秘就在于QR碼中的3處定位圖案,可以幫助QR碼不受背景樣式的影響,實現快速穩定的讀取。
6.支持數據合并功能
QR碼可以將數據分割為多個編碼,最多支持16個QR碼。使用這一功能,還可以在狹長區域內打印QR碼。另外,也可以把多個分割編碼合并為單個數據。
以上就是二維碼的基本信息
接下來我們講如何實現掃描信息
先來看一張圖
這是劃時代意義的“二進制”。二進制由0和1組成,二進制的過程也被稱為編碼過程,它可以將數字、字母等字符轉換成由0和1組成的數字集合。比如,百度的網址 “www.baidu.com ” 轉換成二進制后如下所示:
如果,此時“0”對應白色方塊、“1”對應黑色方塊的話,就會出現許多大大小小黑白方塊。最后把這些方塊填入一個大的正方形內,就形成了? 二維碼圖案了
不知道,大家有沒有好奇,為什么所有的二維碼的邊角都有三個大的黑色方塊這個就是二維碼的定位
手機定位之后呢就要先了解二維碼的大概情況,所以我們看到大方塊周圍紅色線條就包含了
二維碼的信息,以及數據編碼的信息。
二維碼識別的區域就這么大而且是從右下角開始的。
有的小伙伴就問了為什么二維碼被遮擋了還能繼續呢?這里就不得不說QR碼具備“糾錯功能”我們來看一張圖片
綠色的部分是二維碼存儲數據的,橙色的是二維碼糾錯功能,那么我們可以理解為糾錯就是二維碼的備份區域所以二維碼被遮擋了還能識別,生活中有的二維碼被遮擋了一點就掃不出來,而有的就遮擋了一點就可以識別出來這是為什么呢?是因為二維碼有容錯率的,最高可高達30%。如果二維碼容錯率高即使被遮擋的部分大依舊可以掃出來。
好了到這里文章就結束了,大家是不是對二維碼有了一個新認識后面我會更新其他的計算機小知識
歡迎大家訪問我的網站 項目分享博客
總結
- 上一篇: tostring、(string)和 S
- 下一篇: 颓废的三天