這兩天看到一個問題,「二維碼會不會用光」,看到這個問題,我還愣住了,用了這麼久二維碼,我還真沒有仔細探究過二維碼的相關情況,這可不是一個好的程式設計師該有的毛病,所以,我就去Google、維基百科等等,查了下二維碼的前世今生,並且了解了一下它的一些小道消息。
從頭開始探究二維碼
既然要了解二維碼,那就從頭開始了解,不查不知道,一查就傻掉!
原來,二維碼還分好幾種呢,常見的幾種:
- PDF417碼
- QR碼
- 漢信碼
- 顏色條碼
- EZ碼
- Aztec Code
- QuickMark
- Data Matrix
看了一遍,感覺一個都不認識啊,難道這和我理解的二維碼不一樣嗎?
在我一個個查詢了之後,才知道,我們日常使用的二維碼,就是QR碼!
我們就著重了解下QR碼,至於其他的,講起來也挺費事,主要是也沒興趣了解那麼多...
QR碼
QR碼全稱為快速響應矩陣圖碼(Quick Response Code),於1994年由日本DENSO WAVE公司發明.
經常使用二維碼,不知道你們有沒有注意過,每個二維碼都有三個「回」字正方形圖案?
而這三個「回」字圖案的作用,沒錯,就是定位,有了這三個「回」字,那麼你不論以什麼角度去掃這個二維碼,都可以被解碼出來的,而只要失去了其中一個,就會影響識別。
看到這裡,我突然想到了現在的共享單車,每輛車上都有一個二維碼,眾所周知,現在有些人為了獨占一輛單車,常常會把二維碼整個毀掉,或者毀壞大部分。
其實如果他們了解的話, 其實毀掉一個角就可以了,沒必要費那麼大的勁。
繼續學習二維碼,發現二維碼是有一個容錯範圍的,最高可以達到30%的容錯,但是容錯越高二維碼就越大,所以一般容錯都會在15%左右。
這個容錯的意思是什麼?
就是說你就算破壞了一部分(不包括「回」字),也是可以識別出來的!
有沒有想到什麼?
對!微信中的二維碼,中間是不是有你的頭像?
現在才明白,為什麼二維碼中間有個圖片也不影響別人加我好友啊!做出這個設計的人,也是有才啊!
二維碼會不會用完
了解了一些小知識之後,現在問題來了,二維碼會不會用完?
二維碼其實就是用一行行的黑白色塊組成的,而白黑色塊又對應著計算機中的0和1,所以,一個二維碼可以存儲多少數據呢?
要知道二維碼的尺寸也是有所不同的,最小的是21 * 21,最大的能達到171 * 171。
以 171 * 171 的二維碼舉例,它每一排有 171 個格子,一共 171 列,那麼 171 * 171 能組成 2 的 29241 次方個二維碼。
這是什麼概念呢?
全球七十多億人每秒換一個二維碼,刷100億年,也只能刷一小部分,更何況,還可以擴展啊!
所以,我們了解了這些之後,還是不想二維碼能不能用完的問題了,想想什麼時候,二維碼會被其他方式的新事物替代更為理想點!
查了這些資料之後,這一個小困惑也算是被解決了!
循序漸進,日拱一卒,今天的你,又比昨天強大了啊!