1.1 確定需要的塊和糾錯碼字(見附錄四)
較小的QR碼只包含一個數(shù)據(jù)碼字塊潘明,該塊的一組糾錯碼字。在這種情況下暂刘,不需要交替锨侯。簡單地將糾錯碼字放置在數(shù)據(jù)碼字之后嫩海,并移動到下一步。
對于高版本的QR碼识腿,像V5-Q代碼,根據(jù)附錄四可以看出5-Q代碼的第一組由2個塊組成造壮,每個塊具有15個數(shù)據(jù)碼字渡讼,第二組由2個塊組成,每個塊具有16個數(shù)據(jù)碼字耳璧。
注意:在附錄四中所述的是每個塊都有指定個數(shù)的糾錯碼字成箫。對于每個塊,像V5-Q代碼就必須有18個糾錯碼字旨枯。V5-Q代碼有四個塊蹬昌,則一共有18*4=72個糾錯碼字。具體每一塊的數(shù)據(jù)碼字和糾錯碼字的計算在上述已經(jīng)說過了攀隔。
1.2 塊的交替
①數(shù)據(jù)碼字的交替
a)從第一個塊獲取第一個數(shù)據(jù)碼字
b)之后是來自第二塊的第一數(shù)據(jù)碼字
c)之后是來自第三塊的第一數(shù)據(jù)碼字
d)之后是來自第四塊的第一數(shù)據(jù)碼字
e)之后是來自第一塊的第二數(shù)據(jù)碼字
重復(fù)這種模式皂贩,跨越塊栖榨,直到所有的數(shù)據(jù)碼字都被交錯
②糾錯碼字的交替
a)從第一個塊獲取第一個糾錯碼字
b)之后是來自第二塊的第一糾錯碼字
c)其后是來自第三塊的第一糾錯碼字
d)之后是來自第四塊的第一糾錯碼字
e)之后是來自第一塊的第二糾錯碼字
f)執(zhí)行此操作直到所有糾錯碼字已用盡。
③在交錯數(shù)據(jù)代碼字之后插入交錯誤差校正碼字明刷,最后的消息由交織的數(shù)據(jù)碼字和隨后的交錯糾錯碼字組成婴栽。
1.3 轉(zhuǎn)換為二進制
將上一節(jié)中的消息從左往右,每一個數(shù)轉(zhuǎn)換為8位二進制代碼表示辈末。
1.4 根據(jù)情況添加剩余位
對于某些QR版本愚争,最終的二進制消息不夠長,無法填滿所需的位數(shù)挤聘。在這種情況下轰枝,有必要在最終消息的末尾添加一定數(shù)量的0,使其具有正確的長度组去。這些額外的0稱為剩余位鞍陨。具體每個版本需要添加多少剩余位,見附錄六添怔。
1.5 矩陣中模塊布局
①Finder patterns和Timing patterns在第二章QR碼的結(jié)構(gòu)中湾戳,已經(jīng)詳細敘述了。而對于Alignment Pattern(對奇圖案)還要進一步詳細說明广料。
②Alignment Pattern(對奇圖案):在第二章QR碼結(jié)構(gòu)那章砾脑,我們知道,對于V1版本是沒有該圖案的艾杏。只有當(dāng)版本Version>=2時韧衣,才會出現(xiàn)這種對齊圖案。對齊圖案個數(shù)也不相同购桑。見附錄七展示了不同版本對應(yīng)的對齊圖案的位置和個數(shù)畅铭。(注:對齊圖案的位置如果與定位圖案Finder pattern沖突的話,則對齊圖案將省去)
③版本信息區(qū):版本7及更大的QR碼必須包含放置版本信息位的兩個區(qū)域勃蜘。這些區(qū)域是底部左側(cè)定位圖案上方的6x3塊硕噩,右上角定位圖案左側(cè)的3x6塊。如圖一所示
④數(shù)據(jù)位的填充:如圖二所示
向上填充如圖三所示
向下填充如圖四所示
備注:遇到其他標(biāo)志的功能圖案時缭贡,跳過功能圖案繼續(xù)填充炉擅。