久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    二維碼的原理竟如此簡單

     博文夫子 2022-06-14 發布于北京

    一維碼(條形碼)

    在介紹二維碼之前,先來看看它的“大哥”一維碼,一維碼也叫條形碼(P.S. 好像在日常生活中都是叫這個),它是由不同寬度的黑條和白條按照一定的順序排列組成的平行線圖案,它的寬度記錄著數據信息,長度沒有記錄信息,條形碼常用于標出物品的生產國、制造廠家、商品名稱、生產日期、圖書分類號、郵件起止地點、類別、日期等信息,比如大部分食品包裝袋背后都會印有條形碼。

    一維碼(條形碼)編碼規則

    全球的條形碼標準都是由一個叫GS1的非營利性組織管理和維護的,通常情況下條形碼由 95 條紅或黑色的平行豎線組成,前三條是由黑-白-黑 組成,中間的五條由白-黑-白-黑-白組成,最后的三條和前三條一樣也是由黑-白-黑組成,這樣就把一個條形碼分為左、右兩個部分。剩下的 84 (95-3-5-3=84) 條按每 7 條一組分為 12 組,每組對應著一個數字,不同的數字的具體表示因編碼方式而有所不同,不過都遵循著一個規律:右側部分每一組的白色豎線條數都是奇數個。這樣不管你是正著掃描還是反著掃描都是可以識別的。

    中國使用的條形碼大部分都是 EAN-13 格式的,條形碼數字編碼的含義從左至右分別是前三位標識來源 國家編碼(參考資料 1) ,比如中國為:690–699,后面的 4 ~ 8 位數字代表的是廠商公司代碼,但是位數不是固定的,緊接著后面 的 9~12 位是商品編碼,第 13 位是校驗碼,這就意味著公司編碼越短,剩余可用于商品編碼的位數也越多,可表示的商品也就越多,當然公司代碼出售價格也相應更昂貴,另外用在商品上的 EAN-13 條碼是要到 國家物品編碼中心(參考資料 2) 去申請的。


    二維碼

    二維碼 是在一維碼的基礎之上擴展出來的,二維碼有不同的種類,大體上可以分為這兩種 ① 堆疊式/行排式二維條碼 ② 矩陣式二維碼,其中矩陣式二維碼最為流行(下文的二維碼指矩陣式二維碼),它與一維碼所不同的是它的寬度和長度均有記錄數據信息,存儲的數據量更大,除此之外還增加了“定位點”和“容錯機制”。通過“定位點”使讀碼機正確識別進行解讀,所以二維碼不管是從何種方向讀取都是可以被識別的。“容錯機制”可以在沒有識別到全部條碼時也能正確推斷和還原出原始的條碼信息,維碼的糾錯級別,按照不同的糾錯率(全部碼字與可以糾錯的碼字的比率)分為 L (約 7%)、M (約 15%)、Q (約 25%)、H (約 30%) 四個不同的級別。比如下面的「企鵝杏仁技術站」二維碼盡管中間有公眾號頭像,但是依然可以正確識別出來就是這個“容錯機制”的功能。不管是條形碼(一維碼)還是二維碼其本質上都是對信息的編碼,區別只是對信息的編碼方式有所不同。

    二維碼的結構

    二維碼的版本從 1 ~ 40 共 40 個不同的版本,每個版本的基本結構都是相同的,所不同的是每個版本的碼元(構成二維碼的方形黑白點)數量不同,從版本 1 (21 × 21 碼元) 至版本 40 (177 × 177 碼元) 依次遞增。

    二維碼可以分為這幾不同的功能區域,分別是 版本信息、格式信息、數據及容錯、定位標志、校正標志 等主要區域,其中定位標識用來對二維碼進行定位,版本信息表示二維碼的版本,有 40 種不同版本的二維碼,從版本 1 到版本 40 ,每一版本比前一個版本每邊增加 4 個碼元,數據及容錯用于實際保存的二維碼數據信息和用于修正二維碼損壞帶來的錯誤的糾錯碼字,二維碼的編碼規則比較復雜,感興趣的朋友可以去看看它的編碼規范。

    普通二維碼存在的問題

    以上介紹的這種普通二維碼只是對文字、網址、電話等信息進行編碼,不支持圖片、音頻、視頻等內容,且生成二維碼后內容無法改變,在信息內容較多時生成的二維碼圖案復雜,不容易識別和打印,正是由于存在這些特性故稱之為靜態二維碼。靜態二維碼的好處就是無需聯網也能識別,但是有些時候在線下場景經常需要打印二維碼出來讓用戶去掃碼,或者在一些運營場景下需要對用戶的掃碼情況進行數據統計和分析,再使用普通的二維碼就無法提供這些功能了,這時候就要使用動態二維碼了。

    動態二維碼(活碼)及其原理

    動態二維碼也稱之為活碼,關鍵就在于“活”,“活”就是內容可變,但是二維碼不變?;畲a的優點其實就是靜態二維碼的缺點,支持隨時修改二維碼的內容且二維碼圖案不變,可跟蹤掃描統計數據,支持存儲大量文字、圖片、文件、音視、視頻等內容,同時生成的圖案簡單易掃。實際上二維碼是按照指定的規則編碼后的一串字符串,通常大部分情況下是一個網址,在二維碼出現之前,我們訪問一個網址是打開瀏覽器輸入網址后按下回車即可訪問相應的網站,而有了二維碼之后,我們使用軟件掃描二維碼,軟件首先會做一次從二維碼到文本的解析、轉換,然后根據解析出來的文本結果判斷是否是鏈接,是則跳轉到這個鏈接,盡管對我們而言操作方式改變了,但其原理是相同的。

    既然二維碼背后是網址,要解決靜態二維碼生成后內容無法修改的問題,是不是只要把網址做成“活的”就行了,即可操控內容的鏈接,對外暴露的依然還是同一個網址,服務端只需要對這個網址做個二次跳轉就行,實際上“活碼”就是這么干的,這個對外暴露固定不變的網址也稱為“活址”。此時腦海里浮現著計算機科學界一句著名的話:

    計算機科學的任何一個問題,都可以通過增加一個中間層來解決。

    上面的這個“活址”就是一個“中間層”的角色,屏蔽和隔離了二維碼內容的變化,對外始終都只是暴露一個固定的網址。

    靜態二維碼和動態二維碼(活碼)的區別

    比較項普通二維碼動態二維碼(活碼)
    內容修改不支持可以隨時修改
    內容類型支持文字、網址、電話等支持文字、圖片、文件、音視、視頻等內容
    二維碼圖案內容越多越復雜活碼圖案簡單
    數據統計不支持支持
    樣式排版不支持支持

    總結

    本文主要對條形碼、靜態二維碼和動態二維碼的一些基本概念做了簡單的介紹,想要深入了解二維碼的實現細節和原理的朋友可以看看耗子叔的這篇文章 二維碼的生成細節(參考資料 4)和原理 或者到 官網(參考資料 5)查看相關文檔。雖然現在絕大部分人對于二維碼都非常熟悉,幾乎每天都會進行著掃碼操作,不過在人們的大腦中依然有一個“根深蒂固”的認知,認為一個二維碼掃描之后只會出現一種固定的結果,在接觸 活碼 這個概念之前俺也是。你知道的越多,不知道的也越多。

    參考資料

    1、https://en./wiki/List_of_GS1_country_codes

    2、http://www./

    3、https:///articles/10590.html

    4、https://www./zh/index.html

    全文完


      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 男人猛进出女人下面视频| 少妇午夜啪爽嗷嗷叫视频| 亚洲AV旡码高清在线观看| 一本久道久久综合狠狠爱| 日产国产一区二区不卡| AV区无码字幕中文色| 国产第一页浮力影院入口| 国精品午夜福利视频| 国产精品一区二区手机在线观看| 青青国产揄拍视频| 免费在线黄色电影| 国产白嫩护士在线播放| 日本精品人妻无码77777| 啊轻点灬大JI巴太粗太长了在线 | 欧美一进一出抽搐大尺度视频| 日本亲近相奷中文字幕| 久久综合九色综合97欧美| 久久免费精品国自产拍网站| 日本国产一区二区三区在线观看| 岛国岛国免费v片在线观看| 国产亚洲999精品AA片在线爽| 成人一区二区不卡国产| 狠狠色噜噜狠狠狠狠AV| 少妇粗大进出白浆嘿嘿视频| 欧美又粗又大XXXXBBBB疯狂| 唐人社视频呦一区二区| 精品国偷自产在线视频99| 国产很色很黄很大爽的视频| 国产成人8X人网站视频| 日韩欧美一卡2卡3卡4卡无卡免费2020 | 99国精品午夜福利视频不卡99| 人人妻人人澡人人爽欧美精品| 国产稚嫩高中生呻吟激情在线视频| 亚洲一区二区观看播放| 国产曰批视频免费观看完| 国产精品福利自产拍久久| 无码日韩av一区二区三区| 色噜噜国产精品视频一区二区| 一本大道中文日本香蕉| 亚洲精品香蕉一区二区| 97视频精品全国免费观看|