Ho trovato un algoritmo in php del Code128 e l'ho convertito e riadattato per il C#, ma una cosa proprio non mi torna.
Il Code128 consiste nel creare tramite una sua logica una stringa di numeri che vanno da 1 a 4 dalla stringa di caratteri e simboli che gli passo.
Quello che non mi torna è la logica di cosa farsene poi di questi numeri.
Le guide dicono:
"I numeri sono la larghezza delle barre nere e bianche"
Non è del tutto esatto.
Secondo l'algoritmo ad ogni barra nera leva un pixel a prescindere dal moltiplicatore.
Es. ho questo frammento di stringa: 12432
Si parte nero.
Imposto il moltiplicatore a 2 (1 sta a 2, 2 a 4, e così via).
Secondo le guide dovrei avere un barcode di questo genere (faccio un stringa di N per nero e B per bianco).
Se ipoteticamente creo un barcode secondo questa logica e lo do in pasto a un programma, es. Bytescout che legge le immagini con barcode, mi bestemmia in 7 lingue e s'impalla, neanche dice è sbagliato, muore proprio.codice:NNBBBBNNNNNNNNBBBBBBNNNN
Se invece seguendo la logica dell'algoritmo levo un pixel al Nero e lo do al bianco verrebbe così.
Questo barcode viene correttamente letto.codice:NBBBBBNNNNNNNBBBBBBBNNN
Però la logica è strana, prendiamo la stringa 113, con il moltiplicatore 2 verrebbe:
Con moltiplicatore 3 (correttamente letto)codice:NBBBNNNNN
Con moltiplicatore 4 (correttamente letto)codice:NNBBBBNNNNNNNN
Il bello è che se invece lo si moltiplicasse per 1 verrebbecodice:NNNBBBBBNNNNNNNNNNN
Praticamente tutte le barre Nere di lunghezza 1 si perderebbero secondo questa logica e il barcode risulterebbe illeggibile.codice:BBNN
Quindi, dove trovo la logica di stampa del Code128 per iscritto e spiegata bene?![]()