Els codis QR (QR Code o Quick Response Code en anglès) són un tipus de codi en 2 dimensions (una matriu) que es va desenvolupar a Japó en 1994 per Denso Wave per a la indústria automobilística. La idea principal era tenir un codi capaç d’emmagatzemar més informació que un codi de barres convencional i que, al mateix temps, es pogués imprimir en espais petits (per exemple, una peça del motor) sense dificultar la seva interpretació.
Alguns dels usos que actualment se li estan donant als codis QR són la codificació de:
- Text
- URL
- Telèfon
- Missatge SMS
- Dades de contacte (vCard o MECARD)
- Posició GPS
- Event de calendari
- Adreça de correu electrònic
- Xarxa WiFi
L’estructura fonamental d’un codi QR (habitualment de color negre sobre fons blanc i una zona lliure al voltant per facilitar la lectura) es pot dividir en 5 zones diferenciades que contenen la següent informació:
- Versió de codi usada
- Format
- Dades i claus de correcció d’errors
- Patrons obligatoris (posició, alineat, timing)
- Zona lliure
Els avantatges principals del codi QR respecte als codis de barra convencionals són els següents:
- Gran capacitat d’informació (un codi de barres pot emmagatzemar uns 20 dígits mentre que un codi QR pot emmagatzemar fins a diversos centenars de vegades més informació)
- Grandària d’impressió petita (en tenir informació tant en vertical com en horitzontal es pot codificar la mateixa informació en la desena part d’un codi de barres tradicional)
- Codificació de caràcters en Kanji i Kana (JIS Level 1 i Level 2; 1 caràcter Kanji o Kana es pot codificar en 13 bits)
- Resistent a danys i brutícia (en portar claus de correcció d’errors es pot recuperar fins a un 30% de bytes segons el dany que hagi sofert el codi)
- Llegible des de qualsevol adreça en 360º (gràcies als patrons de detecció d’adreça situats en 3 de les cantonades del codi)
- Concatenació del codi (un codi QR es pot dividir en codis QR més petits que, en concatenar-los, contenen la mateixa informació que el codi original)
Encara que el codi QR és un estàndard ISO (ISO/IEC18004), el seu ús no està subjecte a cap tipus de llicència ja que Denso Wave va alliberar l’especificació del mateix i no exerceix els seus drets de patent. Per aquest motiu, en la web es poden trobar múltiples generadors de codis QR (habitualment gratuïts encara que també hi ha serveis de pagament més especialitzats que permeten emmagatzemar i gestionar els codis generats, realitzar el seguiment del seu ús, incloure personalitzacions, etc.) i llibreries (API) perquè nosaltres mateixos puguem realitzar una aplicació que sigui capaç de generar-los i/o llegir-los.
Alguns dels generadors de codis QR més coneguts són els següents:
- goQR.me (Gratuït/Comercial). Permet codificar Text, URL, Telèfon, SMS i vCard mitjançant l’API de QRServer. El resultat es pot descarregar en format PNG o incrustar en una pàgina web. Es pot seleccionar el nivell de correcció d’errors, els colors dels mòduls i el fons, la grandària de la imatge resultant en píxels i la zona lliure al voltant del codi
- ZXing (Gratuït). Permet codificar Esdeveniment de Calendari, vCard/MECARD, Email, Posició GPS, Telèfon, SMS, Text, URL i Xarxa WiFi. El resultat es pot descarregar en format PNG o incrustar en una pàgina web. Únicament es pot seleccionar el nivell de correcció d’errors i tres grandàries fixes de la imatge resultant (small, medium, large). A destacar que la grandària de la zona lliure al voltant del codi generat és major de l’estrictament necessari
- Delivr (Gratuït/Comercial). Permet codificar URL, Serveis (Android Market, Facebook, iPhone App Store, Twitter, YouTube, etc.), MECARD, Email, SMS, Text i uns altres. Es pot seleccionar el nivell de correcció d’errors, la grandària del marge (0-10 mòduls), la grandària de la imatge (1x-4x) i el color del codi. El resultat es pot descarregar en format PNG, EPS i SVG
Algunes de les llibreries i API que permeten treballar amb codis QR són les següents:
- API de QRServer: API usada per goQR.me
- API de Google (abandonada des d’abril de 2012)
- ZXing: Llibreria Java per gestionar múltiples codis 1D/2D incloent codis QR
- QrCode.Net: Llibreria .Net per gestionar codis QR
A l’hora de treballar amb un codi QR s’han de tenir en compte els següents factors:
- Grandària del símbol (des de 21 x 21 fins a 177 x 177 mòduls en increments de 4 mòduls per costat)
- Tipus i quantitat de dades (numèric, alfanumèric, binari i Kanji)
- Nivell de correcció d’errors (Low = 7% de bytes recuperats, Medium = 15%, Quality = 25% i High = 30%)
- Concatenació (màxim 16 símbols per imprimir en un àrea estreta)
Donada una versió de codi QR, un cert nivell de correcció d’errors i el tipus d’informació a codificar, queda establerta la capacitat màxima d’informació que el codi QR pot contenir. Això és important tenir-ho en compte perquè es tracta d’una limitació a l’hora de llegir els codis mitjançant un telèfon mòbil ja que aquests, a diferència d’un escàner industrial, no poden llegir totes les versions de codis QR existents. De la mateixa manera, la grandària d’impressió d’una versió de codi QR (que equival a X mòduls com s’ha comentat anteriorment) dependrà de la grandària en mil·límetres de cada mòdul. Com és de suposar, com més gran sigui la grandària del mòdul més fàcil serà la seva lectura. Per tant, a l’hora d’imprimir-ho s’usarà la grandària de mòdul més gran que permeti l’àrea d’impressió deixant, com a mínim, un espai equivalent a 4 mòduls al voltant del mateix (zona lliure). En Delivr es donen algunes recomanacions a l’hora d’imprimir els codis QR perquè es puguin llegir pel màxim nombre de models de telèfons mòbils:
- 32 x 32 mm, sense incloure la zona lliure, és la mínima grandària que garanteix que tots els telèfons amb càmera del mercat puguin llegir correctament el codi QR
- 26 x 26 mm, sense incloure la zona lliure, cobreix el 90% dels telèfons del mercat
- Els últims models de telèfon amb capacitats macro poden tractar codis QR més petits que 10mm (p. ex. iPhone 4) però els telèfons amb càmeres de 2 Mpx sense autofocus no
- El contrast entre el fons i el color dels mòduls és important (ha de ser un color fosc sobre fons clar i, millor encara, negre sobre blanc)
- 37,5 cm x 37,5 cm és una bona mesura per a cartelleria ja que la majoria de lectors de codis QR els poden llegir a una distància compresa entre 1,5m i 5,5m
Cal destacar que l’aplicació que s’usi per llegir el codi QR juga un paper molt important en el procés d’obtenció de les dades codificades en el codi. Això és a causa que la lectura del codi es realitza en dos passos: a) la càmera d’un telèfon mòbil s’utilitza per obtenir una imatge del codi i b) el programari utilitza diferents algorismes per decidir que certs punts de la imatge corresponen a mòduls del codi. Si els algorismes són bons, el programa podrà compensar la falta de nitidesa provocada per una mala òptica de la càmera, el nostre pols a l’hora de subjectar el mòbil, la falta de llum i contrast en la imatge i usar les dades de correcció d’errors per obtenir la informació que s’ha codificat. Alguns dels programes més populars a l’hora de llegir aquests codis són:
- Android: Barcode Scanner, QR Droid, QR Reader
- iOS: Barcode Reader
Finalment, és important comentar que a Espanya també s’usa un altre tipus de codi bidireccional anomenat Bidi. Encara que la seva funcionalitat és similar, els codis Bidi no són el mateix que els codis QR. A diferència dels codis QR, els codis Bidi es generen mitjançant un algorisme de codi tancat, privat i no gratuït de l’empresa Scanlife. La companyia de telefonia mòbil Movistar va ser la primera a llançar aquest sistema l’any 2008 per fer publicitat dels seus productes (encara que després s’han apuntat altres companyies com Vodafone i Orange i fins i tot fabricants de cotxes, bancs, marques de roba, etc.).
Encara que a primera vista no hi ha diferència entre els dos tipus de codi, es pot veure que els Bidi manquen dels 3 quadrats de posicionament en les esquimas que tenen els QR. Per aquest motiu, els codis Bidi només es llegeixen amb les càmeres i aplicacions específiques de cada marca implantades en els seus propis dispositius mòbils (p. ex. Android o per iOS). Aquestes aplicacions poden no llegir o llegir parcialment un codi QR ja que estan preparades específicament per als codis Bidi. Per aquesta raó és recomanable comprovar que l’aplicació instal·lada “de sèrie” en el nostre telèfon mòbil sigui compatible amb els codis QR.
Com es pot comprovar amb una simple cerca en Google Images, existeix molta confusió entre els dos tipus de codi i es veuen codis QR anomenats Bidi i viceversa. Per exemple, en la presentació dels Presupuestos Generales del Estado 2012 es va indicar inicialment que el codi usat era un Bidi quan en realitat era un QR. A dia d’avui, la pàgina ja està corregida però encara queden traces del llorigó en la URL de la pàgina o en la premsa.