1. 程式人生 > >QRCode二維碼生成方案及其在帶LOGO型二維碼中的應用(2)

QRCode二維碼生成方案及其在帶LOGO型二維碼中的應用(2)

               

首先我們來看看二維碼的符號字元區域,然後再看看其編碼流程。

QRCode的結構:

圖9  QRCode的結構

下圖為二維碼的符號字元區域示意:

圖10   版本2-M符號的字元區域分佈示意

圖11   版本7-H符號的符號字元佈置

從上面可知,字元區域分佈中均有糾錯塊與資料塊。

再看編碼流程:

第1步 資料分析  分析所輸入的資料流,確定要進行編碼的字元的型別。QR碼支援擴充解釋,可以對與預設的字符集不同的資料進行編碼。QR碼包括幾種不同的模式(ECI,數字,字母數字,8位位元組,日本漢字,中國漢字,混合,結構連結,FNC1模式等),以便高效的地將不同的字元子集轉換為符號字元。必要時可以進行模式之間的轉換更高效地將資料轉換,以便為二進位制串。選擇所需的錯誤檢測和糾正等級。如果使用者沒有指定所採用的符號版本,則選擇與資料相適應的最小的版本。第2步 資料編碼

  對於採用的模式按照已定義的規則,將資料字元轉換為位流。在當需要進行模式轉換時,在新的模式段開始前加入模式指示符進行模式轉換。在資料序列後面加入終止符。將產生的位流分為每8位一個碼字。必要時加入填充字元以填滿按照版本要求的資料碼字數。第3步 糾錯編碼  按需要將碼字序列分塊,以便按塊生成相應的錯誤糾正碼字,並將其加入到相應的資料碼字序列的後面。第4步 構造最終資訊  按相關的規範步驟,在每一塊中置入資料和糾錯碼字,必要時加剩餘位。第5步 在矩陣中佈置模組  將尋象圖形、分隔符、定點陣圖形、校正圖形與碼字模組一起放入矩陣。第6步 掩模  依次將掩模圖形用於符號的編碼區域。評價結果,並選擇其中使深色淺色模組比率最優且使不希望出現的圖形最少化的結果。第7步 格式和版本資訊
    生成格式和版本資訊(如果用到時),形成符號。

從上面的字元佈置圖和流程可以觀察到,如果想將LOGO放到二維碼的中間或相應位置(建議偏向圖11所示的左邊位置一些,屬於糾錯塊的區域),則可以採用以下幾種方法:

1、使用無用或無關緊要的字元擴大資料塊區域;

2、在相關位置避開關鍵資料,如無法避開,則至少保證使用其他方式可以糾正該問題引致的錯誤。

(寫作中,未完)