飛總「謎の二維碼」的正確打開方式
前段時間小編的朋友圈是這樣的:
等著霸總小奶狗翻牌加好友,小編不由得思考,現如今加個好友要掃碼,騎個單車要掃碼,吃個瓜也要掃碼。這無孔不入的二維碼,究竟是個什麼操作?
本著求知精神,小編決定說道說道這二維碼的前世今生。
二維碼與密碼類似,是一種排列規則。它的前身是隨處可見的條形碼,又稱一維碼。從很多年以前開始,超市收銀員就不再在結賬時將商品編號一件件輸入,而是掃條碼。這個動作的意義和原理其實和我們用手機掃車票上的二維碼是一模一樣的。
一維條形碼最早投入實際應用是在上世紀六十年代末期,它擁有準確可靠(其取準確率遠遠超過人工記錄,平均每15000個字元才會出現一個錯誤)、效率高(讀取速度很快,相當於每秒40個字元)、成本低廉和用途廣泛等種種優點,的確大大提高了郵政、零售等行業的工作效率。但沒過多久,一維碼的缺點也陸續湧現,首先是一維碼數據容量過小,一般只有三十個字元左右,所以只能存名稱、價格等基礎信息,而且一維碼相當「嬌貴」,條碼略有損壞就可能無法讀取。
二維碼身為青出於藍而勝於藍的妖艷賤貨,針對一維碼所有的缺點進行了改良:加入縱向信息後,可儲存的信息總量最高可以達到1850個字,幾乎相當於四條寫滿的新浪微博。此外,簽名、指紋等圖片信息也可以製作成二維碼後保存。
再者,二維碼的容錯能力也相當強,在極端情況下,二維碼即使被穿孔或污損,毀壞率只要不超過50%,仍然可以被正確識讀。這一特性使得圖案或者文字都可被嵌入至二維碼圖片中,於是二維碼可以被編輯得美美噠。
於是小編順手做了個二維碼,嘿嘿,掃一掃有驚喜噢。
有了一維碼、二維碼,怎麼可以沒有三維碼。
三維碼的主要特徵在於利用色彩或灰度表示不同的數據並進行編碼,因此俗稱彩碼。要注意,彩碼與彩色二維碼的區別在於,彩色二維碼中的顏色並不能儲存信息。三維碼包含的信息量是二維碼的幾十倍,因此可在各種需要保密及防偽等重要領域中應用,如各對種證件、文字資料、圖標及照片等圖形資料進行編碼。
那麼,如此好用的二維碼究竟是怎麼生成的呢?總結其奧義,就是信息按照一定的編碼規則後變成二進位,通過黑白色形成矩陣。0是白色小方塊,1是黑色小方塊,然後填到大方塊中。
1
數據分析
二維碼標準有四種編碼模式:數字,字母數字,位元組和日文。每種模式都使用不同的方法將文本編碼為一串二進位數字(1和0),所以在編碼之前需要進行數據分析,從而使用儘可能短的二進位數字來編碼數據。
2
數據編碼
根據version和糾錯級別(糾錯碼的數量)編碼生成一個二進位序列。序列包含編碼類型的二進位、編碼內容的長度的二進位、編碼內容的二進位、結束符。
3
生成糾錯碼
糾錯碼的存在,使得缺失的數據可被找回。生成糾錯碼,需將上面的序列分塊,並根據糾錯等級和分塊的序列,產生糾錯碼。
4
最終編碼
數據碼和糾錯碼必須以一定的順序排列。對於大尺寸的二維碼,數據碼和糾錯碼必須分塊排列,這些塊必須依據二維碼的規格說明交錯排列。
5
矩陣中的模塊放置
前面產生的數據碼和糾錯碼在正確的順序排列它們之後,必須將這些二進位數字以特定的方式放置在二維碼矩陣中。將探測圖形、分隔符、定點陣圖形、校正圖形和碼字模塊放入矩陣中,並把上面的完整序列填充到相應規格的二維碼矩陣的區域中。
6
掩碼圖案
二維碼掃描器有時很難正確讀取特定模式的碼字。針對這種情況,二維碼規範中定義了八個掩碼圖案,每種特定的圖案都可以改變原始的二維碼圖案。
將掩碼圖案用於符號的編碼區域,使得二維碼圖形中的深色和淺色(黑色和白色)區域能夠比率最優地分布。
7
格式和版本信息
將格式和版本信息放入相應區域內。格式信息定義了糾錯等級和掩碼圖案的模式,版本信息定義了二維碼矩陣的大小並且僅存在於較大的二維碼中(版本7-40)。
搞懂了二維碼生成的原理,我們再來看看如何才能識別這些二維碼。
1
定點陣圖形
首先尋找探測圖形,就是二維碼上的三個方塊。這三個方塊的作用就是:不管你是正著掃,反著掃,斜著掃,花式掃,二維碼都可以被識別出來。定點陣圖形確定二維碼符號中模塊的坐標,二維碼中的模塊都是固定的,包括校正圖形,版本信息,數據和糾錯碼。分隔符就是將探測圖形與二維碼信息圖像分開。
2
灰度化二維碼信息像素
※假期即將結束,大人孩子如何平穩過渡到節前生活
※大S:不「喪心病狂」,我怎麼比你過得好
TAG:全球大搜羅 |