一、(條形碼設計及編碼)
從上圖中可觀察到:
從左往右是黑白相間的條形碼,黑的叫“條”(B),白的叫“空”(S)。
如果你仔細看,條和空都有4種不同的寬度。我們將它從細到粗賦予1、2、3、4這幾個值。
然后我們開始按照粗細的值來閱讀條碼、結果如下:
211232 | 112232 | 131123 | 331121 | 241112 | 214121 | 112232 | 311123 | 2331112
注意這個結果是黑白相間的。別只顧著讀“條”忘了都空。這邊總共有55位。
Code128碼有一個頭、一個校驗、一個尾。
尾總是2331112,這代表Code128已經結束。其余的部分是6位為一個塊,包括頭。
頭有3種:A)211412 B)211214 C)211232 。這分別表示此Code128是什么類型的。(ABC其中一種)
我們將我們讀出來的碼,去掉頭和尾,重新分一次塊:
112232 | 131123 | 331121 | 241112 | 214121 | 112232 | 311123
正好是6位為一塊。其中最后一個塊(除去尾段的最后一個塊)是校驗位,用于檢查該條形碼是否被正確編碼。
然后查Code 128字符表,對應各個編號表示的是什么。
我們這個是211232開頭,是Code128C型。C型碼是純數字的,每個塊對應2位數字。
查表可得 12 34 56 78 90 12。
211214 | 123221 | 223211 | 221132 | 132212 | 2331114
128 B型 1 2 3 校驗碼 尾
有了這些知識,我們就可以嘗試去寫一個程序去生成條形碼和識別條形碼。
其實生成是比較簡單的,而識別就比較麻煩了。通常超市是使用條碼槍,通過光學原理來識別的,因為黑白條紋的反光特性不一樣。