Wpisany przez Tomasz Lubiński,
20 listopada 2019 20:30
Kod kreskowy BC412 został opracowany w 1988 roku przez Computer Identics oraz IBM. W 1992 roku został on ustanowiony przez organizację SEMI (the Semiconductor Equipment and Materials International) jako standard oznaczania półprzewodnikowych wafli krzemowych (SEMI T1-95). Kod BC412 jest kodem jednej szerokości (ang. single-width code), oznacza to, że wszystkie paski są tej samej szerokości. Kodowanie odbywa się poprzez zmienną odległość pustego miejsca między kolejnymi paskami. Sprawia to, że kod ten doskonale nadaję się do zastosowania na mało kontrastowych powierzchniach.
Nazwa pochodzi kodowania pochodzi od:
Kodowanie w tabeli powyżej oznacza, szerokość przestrzeni pomiędzy kolejnymi paskami. Czyli cyfra zero kodowana jest jako:
pasek, następnie przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 5 pasków.
Całość w sumie zajmuje tak jak napisane wcześniej 12-krotność szerokości paska (4 paski + 8 krotność paska w postaci pustych przestrzeni pomiędzy).
Suma kontrolna obliczana jest jako suma wartości znaków podanych w tabeli powyżej podzielona następnie modulo 35.
Zakodujmy więc napis ALG
Najpierw znak start, kodowany jako pasek a następnie przestrzeń szerokości dwóch pasków
Dalej kolejne litery: A - kodowane jako pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 3 pasków, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 2 pasków
L - kodowane jako pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 3 pasków i pasek i przestrzeń szerokości 1 paska
G - kodowane jako pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 3 pasków
Teraz cyfra kontrolna: Cuma wartości kolejnych liter mod 35 = 7 + 4 + 3 mod 35 = 14 mod 35 = 14. Wartość 14 ma litera 'S' i to jest nasza cyfra kontrolna, którą dodajemy do kodu, czyli kodujemy:
pasek i przestrzeń szerokości 3 pasków, pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 2 pasków
I na końcu pasek znak stop, czyli ostatni pasek. Całość narysowana wygląda następująco:

Nazwa pochodzi kodowania pochodzi od:
- BC - ang: Binary Code kod binarny,
- cyfry 412 oznaczają sposób kodowania:
każdy znak/cyfra kodowana jest w postaci 4 pasków i odległości między nimi,
każdy znak/cyfra kodowana jest w sumie poprzez 12-krotność ciemnego paska
- znak start - kodowany jako pasek a następnie pusta przestrzeń szerokości dwóch pasków
- kolejne znaki zakodowane zgodnie z tabelką poniżej
- cyfra kontrolna zakodowana zgodnie z tabelką poniżej
- znak stop - kodowany jako pasek
Znak | Kodowanie | Wartość |
0 | 1, 1, 1, 5 | 0 |
1 | 1, 1, 2, 4 | 15 |
2 | 1, 1, 3, 3 | 17 |
3 | 1, 1, 4, 2 | 29 |
4 | 1, 1, 5, 1 | 11 |
5 | 1, 2, 1, 4 | 33 |
6 | 1, 2, 2, 3 | 19 |
7 | 1, 2, 3, 2 | 21 |
8 | 1, 2, 4, 1 | 8 |
9 | 1, 3, 1, 3 | 2 |
A | 1, 3, 2, 2 | 7 |
B | 1, 3, 3, 1 | 25 |
C | 1, 4, 1, 2 | 20 |
D | 1, 4, 2, 1 | 22 |
E | 1, 5, 1, 1 | 9 |
F | 2, 1, 1, 4 | 30 |
G | 2, 1, 2, 3 | 3 |
H | 2, 1, 3, 2 | 6 |
I | 2, 1, 4, 1 | 27 |
J | 2, 2, 1, 3 | 16 |
K | 2, 2, 2, 2 | 24 |
L | 2, 2, 3, 1 | 4 |
M | 2, 3, 1, 2 | 34 |
N | 2, 3, 2, 1 | 12 |
P | 2, 4, 1, 1 | 32 |
Q | 3, 1, 1, 3 | 18 |
R | 3, 1, 2, 2 | 1 |
S | 3, 1, 2, 2 | 14 |
T | 3, 2, 1, 2 | 13 |
U | 3, 2, 2, 1 | 26 |
V | 3, 3, 1, 1 | 5 |
W | 4, 1, 1, 2 | 31 |
X | 4, 1, 2, 1 | 28 |
Y | 4, 2, 1, 1 | 23 |
Z | 5, 1, 1, 1 | 10 |
pasek, następnie przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 5 pasków.
Całość w sumie zajmuje tak jak napisane wcześniej 12-krotność szerokości paska (4 paski + 8 krotność paska w postaci pustych przestrzeni pomiędzy).
Suma kontrolna obliczana jest jako suma wartości znaków podanych w tabeli powyżej podzielona następnie modulo 35.
Przykład:
Zakodujmy więc napis ALG
Najpierw znak start, kodowany jako pasek a następnie przestrzeń szerokości dwóch pasków
Dalej kolejne litery: A - kodowane jako pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 3 pasków, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 2 pasków
L - kodowane jako pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 3 pasków i pasek i przestrzeń szerokości 1 paska
G - kodowane jako pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 3 pasków
Teraz cyfra kontrolna: Cuma wartości kolejnych liter mod 35 = 7 + 4 + 3 mod 35 = 14 mod 35 = 14. Wartość 14 ma litera 'S' i to jest nasza cyfra kontrolna, którą dodajemy do kodu, czyli kodujemy:
pasek i przestrzeń szerokości 3 pasków, pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 2 pasków
I na końcu pasek znak stop, czyli ostatni pasek. Całość narysowana wygląda następująco:

Przykład w JavaScript:
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | Microsoft Visual Studio 2010 | .cs | .cs | ***** / 0 |
Tomasz Lubiński | Java | .java | .java | ***** / 0 | |
Tomasz Lubiński | JavaScript | .js | .js | ***** / 0 |
Poprawiony: 21 listopada 2019 07:34