Corsi on-line

QuaggaJS: uno scanner per codici a barre in JavaScript

QuaggaJS è uno scanner per codici a barre scritto interamente in linguaggio JavaScript, quindi integrabile in una comune Web application, che mette a disposizione il supporto in tempo reale per la localizzazione e il decoding di varie tipologie di barcodes, come per esempio standard particolarmente diffusi in ambito industriale quali EAN e CODE128. Si tratta di una libreria rilasciata sotto licenza Open Source che, a differenza di soluzioni simili, non rappresenta un’ulteriore estensione di ZXing (“Zebra Crossing”) ma una vera e propria implementazione.

teaser_500

Il funzionamento di QuaggaJS è particolarmente semplice e viene articolato in tre fasi differenti: la libreria legge l’immagine del codice a barre e la converte in una rappresentazione binaria leggibile, determina il posizionamento e la rotazione del barcode e, infine, interpreta il codice a barre in base alla codifica utilizzata; da sottolineare l’efficacia di questa soluzione nel corso della seconda fase: QuaggaJS infatti riesce a gestire differenze di scala e rotazioni, per cui non sarà necessario un allineamento preciso tra barcode e lettore.

Per poter utilizzare pienamente le funzionalità fornite dal reader sarà necessario impiegare un browser Web che disponga del supporto per l’API (Application Programming Interface) getUserMedia finalizzata all’esecuzione di procedure basate sul media streaming, cioè la stessa interfaccia utilizzata in HTML5 per la cattura di contenuti audio/video; attualmente questa feature risulta già implementata nelle release più aggiornate di Firefox, Chrome e Opera, mentre per ora Safari e Internet Explorer non dovrebbero garantire alcuna compatibilità.

In realtà il riconoscimento dei codici a barre non avverrebbe esattamente “in tempo reale”, ma sarebbe talmente veloce da garantire comunque una user experience ottimale, parliamo infatti di non più di 40 millisecondi per il completamento dell’operazione; nel caso in cui la decodifica in tempo reale non sia richiesta o la piattaforma utilizzata non supporti getUserMedia, la libreria dovrebbe essere comunque in grado di effettuare il decoding delle immagini tramite File API.

QuaggaJS utilizza Asm.js, progetto sviluppato in seno alla fondazione Mozilla, che fornisce un subset JavaScript altamente ottimizzabile per ottenere velocità di esecuzione paragonabili a quelle delle applicazioni native.

Via Mozilla Hacks

Post correlati
I più letti del mese
Tematiche