Por diversas vezes eu vi certos produtos que em sua embalagem havia um quadrado todo riscado que mais parecia uma tela de TV fora do ar, tipo este ai ao lado. Como pra mim isso não significava nada, eu sempre o desprezei achando que fosse uma falha ou mesmo um teste de impressão. Isso até algum tempo atrás, quando eu descobri que esta figura estranha é uma espécie de código de barras bidimensional criado em 1994 e que tem como finalidade identificar quaisquer itens de maneira mais completa.
QrCode, segundo a Wikipédia é uma matriz (ou código de barras bi-dimensional), criado em 94 pela empresa Japonesa Denso-Wave[1] e é muito usado naquele país, embora os encontremos por aqui também. O QR vem de Quick Response, pois o código pode ser interpretado rapidamente, mesmo com imagens de baixa resolução, feitas por câmeras digitais em formato VGA como as de celulares [2]. Também é importante dizer que este código se tornou um padrão ISO (ISO18004:2006).
Eric Messa publicou em 2007 algumas utilidades legais do Qr code em seu blog “E-code”[3] (não deixe de seguir os links que ele apresenta também). Em outro artigo mais recente (2008) Nathan Willis publicou no site Linux.com um artigo muito completo e recheado de links a respeito do assunto e que é de leitura obrigatória principalmente para que pretende desenvolver aplicações que gerem este tipo de código[4].
Ao que consta e surpreende nos diversos sites a respeito deste tipo de código, é a possibilidade de armazenar textos até um total 4KB, ou até mais se forem apenas números (cerca de 7KB). Segundo os sites visitados (todos listados abaixo) este código pode ser usado (e tem sido usado) como uma espécie de hardlinks ou hiperlinks do mundo real[5] ou se preferir um agregador de mídia que pode levar o leitor de uma mídia impressa diretamente a uma informação online a partir do celular, por exemplo.
O procedimento para isso é o seguinte: Um determinado jornal, revista, ou qualquer produto exibe a sua etiqueta Qrcode. O usuário interessado saca o seu telefone do bolso (com câmera) e tira uma foto da etiqueta. O programa de interpretação da etiqueta – que já está instalado no seu celular – irá interpretar e retornar o endereço web com informações adicionais sobre aquele produto, ou qualquer outra informação, tal como nome do fabricante, validade, etc etc (em 4KB dá pra escrever muita coisa a respeito, certo!?).
Estes programas estão disponíveis para diversas plataformas, marcas e modelos de celular e smartphones, principalmente aqueles que suportam aplicativos em Java, mas também estão disponíveis para o PC de forma que você pode pegar as etiquetas disponíveis em sites e consultá-las.
Criando a sua etiqueta
A criação desta etiqueta é bem simples e pode ser criada online ou através de algum programa instalado em seu computador. Para criação online existem dezenas de links. Eu listo alguns nas referências no final deste artigo tal como os links [6], [7], [8], [9], [10]. Em regras gerais, basta acessar o endereço, escrever o seu texto e clicar no botão para “enviar”, “gerar” ou algo parecido. O resultado será uma bela figura quadrada e cheia de rabiscos como a que eu coloquei ali do lado do blog faz algum tempo ou mesmo a que “enfeita” esta matéria. Então basta salvar a figura no seu computador, celular etc e depois distribuí-la onde quiser.
Se você for desenvolvedor atente para o fato que vários destes sistemas online usam a API de criação de gráficos do Google[11], então este é um bom ponto de partida caso você precise criá-los em série e sem muito esforço. O site Techcaffe apresenta um exemplo simples de utilização desta API[12] caso esteja interessado em usá-la. Desenvolvedores Python também gostarão do link [13] que possui a biblioteca PyQrcodec e o link [14] (PyQrCode – um hack do primeiro) ambos permitem criar estas imagens a partir de sua linguagem favorita.
Para quem preferir criar seus Qr codes offline e pela linha de comandos, Paulo Roberto Junior escreveu uma matéria sobre a biblioteca QRencode no site Viva o Linux[15]. O procedimento apresentado consiste em no velho conhecido dos usuários de nível intermediário e avançado quarteto de comandos wget/tar/configure/make. Mas para os felizes usuários da última versão do Ubuntu esta biblioteca já encontra-se compilada e disponível no repositório oficial e sendo assim um simples “aptitude install” resolve o problema.
sudo aptitude install qrencode
Para usá-lo o procedimento é tão simples quanto:
qrencode -o meuqrcode.png "Seu texto"
Isso irá criar um arquivo de imagem no formato “png” chamado “meuqrcode.png” e que corresponde ao QR code do texto que você escreveu. Caso você não escreva o seu texto entre aspas o programa ficará aguardando que você o digite e tecle CTRL+D ao terminar.
Se você preferir um programa em modo gráfico para criar suas etiquetas pode usar o Zint Barcode[16] que é um programa Opensource escrito em linguagem C e portável entre Windows, Mac OS e Linux. Ele permite produzir mais de 80 formatos de códigos de barras diferentes. Ao ser executado ele apresenta uma interface gráfica baseada na biblioteca Qt (KDE) e que é bastante intuitiva, ou se você preferir em modo console via linha de comandos.
No site está o link para download do código fonte e também o link para um repositório de pacotes prontos para Debian e Ubuntu (testei no Ubuntu 9.04 e funcionou muito bem). Para instalar o Zint no Ubuntu e no Debian basta seguir o procedimento a seguir que é praticamente o que está escrito em [17].
sudo su cat <<FIM >/etc/apt/sources.list.d/licentia.list deb http://debian.licentia.eu sid main deb-src http://debian.licentia.eu sid main FIM wget -q http://debian.licentia.eu/licentia.asc -O- | sudo apt-key add - aptitude update aptitude install zintfrontend qzintfrontend
Este procedimento irá solicitar a sua senha para alcançar privilégios administrativos (root) adicionará um novo repositório de pacotes, obterá a assinatura GPG do repositório e finalmente atualizará a lista de pacotes e fará a instalação do Zint para modo texto e modo gráfico.
Lendo a sua etiqueta
Da mesma forma que a criação, a leitura pode ser feita online, ou através de um aplicativo instalado em seu celular ou computador. Nos links [18] e [19] tem dois leitores deste tipo onde você pode indicar tanto um arquivo salvo em seu computador quanto um link para o arquivo com a etiqueta. O sistema se encarregará de fazer o upload, a leitura e a decodificação da etiqueta mostrando na tela o que significa aqueles quadrados.
O Kaywa Reader é um leitor de Qr code para celular[20] e que pode ser baixado gratuitamente (mediante prévio cadastro), o J2MEQRCode[21] que também está disponível para uma imensa lista de aparelhos celular e há ainda o Iphone 2D Barcode Reader, cujo nome já diz tudo[22]. O projeto ZXing (apoiado pelo Google) entre outras centenas. Para não gastar muitos bytes indicando dezenas de programas para celular, dê uma passada no site Getjar[23], meu favorito para download de aplicações Java para celular, nele você deverá procurar por QR, qrcode, barcode etc e certamente encontrará ao menos uma dúzia de aplciativos com este fim. Após baixa-los e instalar no seu celular basta abrí-lo, mirar a câmera para o código e tirar a foto para que o software “traduza” os quadradinhos na informação real.
Para leitura offline a partir do seu PC, até o momento eu só encontrei o Qrcode[24] que é escrito em Java e roda em modo console ou gráfico. Uma vez feito o download do arquivo zip, descompacte-o e pela linha de comandos acesse a pasta qrcode que foi descompactada. Lá de dentro basta executar o comando:
make all
Isso irá compilar o código em Java (desde que você já tenha uma JDK instalada. Eu testei com a Sun JDK) e gerar um arquivo chamado qrcode na pasta qrcode/bin que poderá ser chamado pela linha de comandos para interpretar as etiquetas desde que você o execute sempre de dentro desta pasta.
Uma forma de deixá-lo disponível para acesso por qualquer usuário do seu computador é copia-lo para para uma pasta de acesso público como a /opt e criar os devidos links para que não seja necessário entrar no seu diretório de instalação. O procedimento abaixo dará conta disso (rode-o de dentro da pasta qrcode que foi extraída do arquivo .zip), copiando a pasta para um local mais adequado, criando os links devidos e inclusive criando um pequeno shellscript para chamar a sua interface gráfica que é muito mais amigável do que ficar chamando via linha de comandos:
mkdir /opt/qrcode && cp -r * /opt/qrcode cat <<FIM >/opt/qrcode/bin/qrcode-gui #!/bin/bash # cat << MSGEND GUI para o Qrcode Welington R. Braga - welrbraga [*] yahoo.com 2009-09-16QrCode: Código de barras bidimensionalMSGEND # cd /opt/qrcode java -cp classes:lib/qrcode.jar example.QRCodeDecoderGUIExample cd - # FIM chmod +x /opt/qrcode/bin/qrcode-gui ln -s /opt/qrcode/bin/qrcode* /usr/local/bin
Desta forma o diretório que você criou e compilou o programa poderá ser excluído sem problemas. Caso você queira executar o programa pela linha de comando bastará digitar:
qrcode [caminho ou URL da imagem]
ou então para chamar a interface gráfica:
qrcode-gui
Dica: Pelo Gnome você pode pressionar ALT+F2, digitar qrcode-gui e teclar ENTER para que a interface seja aberta, ou então criar um atalho em sua área de trabalho.
Conclusão
Só pra encerrar, quanto mais se procura sobre o assunto mais você encontrar. Inclusive há uma espécie de site de relacionamentos baseado em QrCode chamado de Snappr[25]. Este texto que não esgota o assunto é apenas a ponta do iceberg e certamente nós ainda ouviremos e leremos muita oicsa a respeito deste código.
Referências
[1] Denso-wave. Qrcode. Disponível em <http://www.denso-wave.com/qrcode/index-e.html>. Acesso em 15 set. 09.
[2] Wikipédia. QrCode. Disponível em <http://pt.wikipedia.org/wiki/QR_Code>. Acesso em 15 set. 09.
[3] Messa, Eric. Qrcode: A evolução do código de barras. Disponível em <http://www.messa.com.br/eric/ecode/2007/06/cdigo-qr-evoluo-do-cdigo-de-barras.html>. Acesso em 15 set. 09.
[4] Nathan Willis. Free software and 2-D barcodes. Disponível em <http://www.linux.com/archive/feature/126948>. Acesso em 15 set. 09.
[5] Google API. Qr Code. Disponível em <http://code.google.com/intl/pt-BR/apis/chart/#qrcodes>. Acesso em 15 set. 09.
[6] E.P. Soluções. Gerador de códigos QR. Disponível em <http://www.tekne.eti.br/codigosqr.html>. Acesso em 15 set. 09.
[7] Janones Sistemas. Gerador Qr Code. Disponível em <http://www.janones.com.br/portal/index/encode>. Acesso em 15 set. 09.
[8] Criativa Software. Gerador de imagem Qr code. Disponível em <http://www.criativasoftware.com/app/qrcode/>. Acesso em 15 set. 09.
[9] Lendorff Kaywa. Qr-Code generator. Disponível em <http://qrcode.kaywa.com/>. Acesso em 15 set. 09.
[10] ZXing Project. QR Code Generator. Disponível em <http://zxing.appspot.com/generator/>. Acesso em 15 set. 09.
[11] Google. API do Google Chart. Disponível em <http://code.google.com/intl/pt-BR/apis/chart/>. Acesso em 15. set. 09.
[12] TechCaffe. Gerar Qr code através da API do Google. Disponível em <http://www.techcaffe.net/site/tutoriais.php?recID=7>. Acesso em 15 set. 09.
[13] PyQRCodec. Disponível em <http://www.pedemonte.eu/pyqr/index.py/pyqrhome>. Acesso em 15 set. 09.
[14] PyQrcode. Disponível em <http://pyqrcode.sourceforge.net/>. Acesso em 15 set. 09.
[15] Roberto Junior, Paulo. QRCODE – Código de barras bidimensional. Disponível em <http://www.vivaolinux.com.br/artigo/QRCODE-Codigo-de-barras-bidimensional>. Acesso em 15 set. 09.
[16] Zint Barcode. Disponível em <http://www.zint.org.uk/zintSite/>. Acesso em 16 set 09.
[17] Licentia debian repository. Disponível em <http://debian.licentia.eu/>. Acesso em 15 set. 09.
[18] Janones Sistemas. Leitor Qr Code. Disponível em <http://www.janones.com.br/portal/index/decode>. Acesso em 15 set. 09.
[19] Zxing Project. ZXing Decoder online. Disponível em <http://zxing.org/w/decode.jspx>. Acesso em 15 set. 09.
[20] Lendorff Kaywa. Kaywa Reader. Disponível em <http://reader.kaywa.com/>. Acesso em 15 set. 09.
[21] J2MEQRCode. Disponível em <http://www.getjar.com/products/5265/J2MEQRCode>. Acesso em 16 set 09.
[22] Iphone 2D barcode reader. Disponível em <http://barcode2d.sourceforge.net/>. Acesso em 16 set. 09.
[23] GetJar. Disponível em <http://www.getjar.com>. Acesso em 16 set. 09.
[24] Open Source QR Code Library. Disponível em <http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip/>. Acesso em 15 set. 09.
[25] Snappr. Disponível em <http://www.snappr.net/>. Acesso em 15 set. 09.
Muito bom, Muito bom mesmo… Agora só me falta uma lib Java para gerar sem o google …