Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Barcode] Code 128, qualcosa non torna

    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).
    codice:
    NNBBBBNNNNNNNNBBBBBBNNNN
    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.

    Se invece seguendo la logica dell'algoritmo levo un pixel al Nero e lo do al bianco verrebbe così.
    codice:
    NBBBBBNNNNNNNBBBBBBBNNN
    Questo barcode viene correttamente letto.

    Però la logica è strana, prendiamo la stringa 113, con il moltiplicatore 2 verrebbe:
    codice:
    NBBBNNNNN
    Con moltiplicatore 3 (correttamente letto)
    codice:
    NNBBBBNNNNNNNN
    Con moltiplicatore 4 (correttamente letto)
    codice:
    NNNBBBBBNNNNNNNNNNN
    Il bello è che se invece lo si moltiplicasse per 1 verrebbe
    codice:
    BBNN
    Praticamente tutte le barre Nere di lunghezza 1 si perderebbero secondo questa logica e il barcode risulterebbe illeggibile.

    Quindi, dove trovo la logica di stampa del Code128 per iscritto e spiegata bene?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Già avevo visto:
    Bar Code Widths

    Code128 specifies a combination of 6 bars and spaces for each character except the Stop character, which uses 7. Thus, each character begins with a bar and ends with a space (with the exception of the stop character, which ends in a bar). The following tables detail the widths associated with each bar and space for each character. The width of each bar or space can be 1, 2, 3 or 4 units. Using the example above, an 'A' would be depicted as 10100011000, or as 111323 in the tables below.
    Secondo quanto riportato se prendo A e usando il Code 128 B il risultato di lunghezze è questo:

    Start: 211214
    A: 111323
    Check: 131123
    End: 2331112

    Ovvero: 2112141113231311232331112.

    Se però genero un barcode con queste width esatte il programma Bytescout Barcode Reader crasha.

    Allego l'immagine creata con width esatto e moltiplicatore 1 che manda in crash.

    Se invece, creo l'immagine levando un pixel alle barre nere e aggiungendolo alle bianche funziona.

    Allego anche quella.

    L'unico dubbio che mi viene è se per caso sia Bytescout che non funziona, ma è così strano che invece il barcode con pixel sottratto lo riconosca esattamente.
    Immagini allegate Immagini allegate

  4. #4
    Il mistero comunque s'infittisce, un sito gratuito per produrre Barcode Code 128 se gli dico A mi produce lo stesso identico barcode che produco io seguendo la guida esatta e che manda in errore Bytescout....

  5. #5
    Il mistero sembra essere risolto.

    Ho scaricato un altro programmino freeware, BarDecoder, più piccolino rispetto al Bytescout, però questo effettivamente legge il primo barcode, il secondo non lo considera.

    Quindi è Bytescout il problema, non il mio barcode

    Meno male...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.