商品に付けられているバーコードで最もポピュラーなものをEANコード(JANコード)と言います。
縞模様で13桁(1桁+6桁+6桁)の数列を表現しています。
これの作り方を調べました。
全体の構成
同じ幅の113列をそれぞれ白か黒で塗って縞模様を作ります。
左端の余白が11列あります。
左のガードバーが「黒白黒」で3列あります。
13桁の数値のうち2桁目から7桁目までの6桁を、変換ルールに従い、それぞれ7列で表わします。都合42列になります。
中央のセンターバーが「白黒白黒白」で5列あります。
8桁目から13桁目までの6桁を、それぞれ7列で表わします。都合42列になります。
右のガードバーが「黒白黒」で3列あります。
右端の余白が7列あります。
合計すると113列になります。
変換ルール
上の説明では、1桁目の数値が出てきません、変換ルールの中に「このパターンならば4であることが分かる」というような仕組みが隠されています。
この変換ルールについては「バーコード入門編 第6章 技術解説 マルチレベル系バーコード(JAN) BARCODE HAND BOOK~テクニカル~」(リンク切れ)に詳しく書かれています。
数値を縞模様に変換するルールは次の通りです。二つの表を使います。
数値(1桁目) | パターン |
---|---|
0 | 奇奇奇奇奇奇 |
1 | 奇奇偶奇偶偶 |
2 | 奇奇偶偶奇偶 |
3 | 奇奇偶偶偶奇 |
4 | 奇偶奇奇偶偶 |
5 | 奇偶偶奇奇偶 |
6 | 奇偶偶偶奇奇 |
7 | 奇偶奇偶奇偶 |
8 | 奇偶奇偶偶奇 |
9 | 奇偶偶奇偶奇 |
数値 | 左半分(奇) | 左半分(偶) | 右半分 |
---|---|---|---|
0 | 白白白黒黒白黒 | 白黒白白黒黒黒 | 黒黒黒白白黒白 |
1 | 白白黒黒白白黒 | 白黒黒白白黒黒 | 黒黒白白黒黒白 |
2 | 白白黒白白黒黒 | 白白黒黒白黒黒 | 黒黒白黒黒白白 |
3 | 白黒黒黒黒白黒 | 白黒白白白白黒 | 黒白白白白黒白 |
4 | 白黒白白白黒黒 | 白白黒黒黒白黒 | 黒白黒黒黒白白 |
5 | 白黒黒白白白黒 | 白黒黒黒白白黒 | 黒白白黒黒黒白 |
6 | 白黒白黒黒黒黒 | 白白白白黒白黒 | 黒白黒白白白白 |
7 | 白黒黒黒白黒黒 | 白白黒白白白黒 | 黒白白白黒白白 |
8 | 白黒黒白黒黒黒 | 白白白黒白白黒 | 黒白白黒白白白 |
9 | 白白白黒白黒黒 | 白白黒白黒黒黒 | 黒黒黒白黒白白 |
「4 971633 002647」を例に挙げて説明します。
「971633」が「左半分」、「002647」が右半分になります。
1桁目
「4」なので、パターンは「奇偶奇奇偶偶」となります。
※日本に割り当てられているのは「45」または「49」なので、ほとんどの場合、このパターンになります。
2桁目
左半分の1番目と見て、パターン「奇偶奇奇偶偶」の1番目の「奇」となります。
「左半分(奇)」を見て、2桁目の数値は「9」なので「白白白黒白黒黒」となります。
3桁目
左半分の2番目と見て、パターン「奇偶奇奇偶偶」の2番目の「偶」となります。
「左半分(偶)」を見て、2桁目の数値は「7」なので「白白白黒白黒黒」となります。
以下、4桁目から7桁目まで同様です。
8桁目
ここから右半分です。奇遇の区別はありません。
「右半分」を見て、8桁目の数値は「0」なので「黒黒黒白白黒白」となります。
以下、9桁目から13桁目まで同様です。
エラーチェック
機械で縞模様をスキャンして13桁の数列に変換しますが、上のパターンに合致しない場合は、エラーになります。
また数列の最後の桁はチェックデジットになっていて、これが合致しない場合もエラーになります。
チェックデジットというのは、12桁をある規則により1桁の数に変換する方法で、EANコードの場合、「モジュラス10のウェイト3」という手法を使っているそうです。
コメント