VB .NET - Gerando, Salvando e Lendo QRCode


 Neste artigo vou mostrar como gerar, salvar e decodificar código QR (Quick Response) ou QRCode usando a linguagem VB .NET.

Código QR (sigla do inglês Quick Response) é um código de barras bidimensional que pode ser facilmente escanerizado usando a maioria dos telefones celulares equipados com câmera. Esse código é convertido em texto (interativo), um endereço URI, um número de telefone, uma localização georreferenciada, um e-mail, um contato ou um SMS.

Inicialmente empregado para catalogar peças na produção de veículos, hoje o QR Code é usado no gerenciamento de inventário e controle de estoque em indústrias e comércio. Desde 2003, foram desenvolvidas aplicações que ajudam usuários a inserir dados em telefone celular usando a câmera do aparelho. Os códigos QR são comuns também em revistas e propagandas, para registrar endereços e URLs, bem como informações pessoais detalhadas. Em cartões de visita, por exemplo, o código QR facilita muito a inserção desses dados em agendas de telefones celulares. Programas de captura ou PCs com interface RS-232C podem usar um escâner para capturar as imagens.

O padrão japonês para o código QR,  JIS X 0510, foi lançado em janeiro de 1999 e corresponde ao padrão internacional ISO/IEC 18004, tendo sido aprovado em junho de 2000. Segundo o site da Denso-Wave, o "código QR é aberto para uso e sua patente, pela Denso-Wave, não é praticada".

fonte: http://pt.wikipedia.org/wiki/C%C3%B3digo_QR

O QR Code também pode ser usado para adicionar dados num formato de cartão de visita em aparelhos celulares. Para criar o seu próprio QR Code, você pode baixar programas prontos ou pode usar serviços gratuitos disponibilizados em sites. Existem diversos sites que tratam QRCode como este : http://www.qrcode-monkey.com/  ou este : http://e-lemento.com/pt/gerador-qr-code

Neste artigo eu vou gerar, salvar e decodificar códigos QR usando a linguagem Visual Basic .NET e mostrando também a versão para a linguagem C#.

Recursos usados:

Criando o projeto no Visual Studio 2013 Express

Abra o VS Express 2013 for Windows desktop e clique em New Project;

A seguir selecione a linguagem Visual Basic e o template Windows Forms Application;

Informe o nome Geranciado_QRCode e clique no botão OK;

Vamos incluir uma referência a biblioteca Qr Code Library em nosso projeto usando o Nuget.

Para isso clique no menu TOOLS e a seguir selecione Library Package Manager -> Manage Nuget Packages for Solution...

A seguir vamos procurar localizar a biblioteca Qr Code library e a seguir clicar no botão Install;

Confirme a instalação e após o término do processo clique no botão Close.

Na janela Solution Explorer você deverá ver a referência a biblioteca : MessagingToolkit.QRCode

A seguir vamos definir a interface com o usuário.

A partir da ToolBox inclua os seguinte controles no formulário form1.vb:

Disponha os controles conforme o leiaute da figura abaixo:

Precisamos definir as declarações ao namespaces da biblioteca Qr Code library no formulário. Para isso vamos declarar:

Imports MessagingToolkit.QRCode.Codec
Imports
MessagingToolkit.QRCode.Codec.Data

Agora vamos definir o código no evento Click de cada um dos botões de comando do formulário:

1- Gerar QRCode

 Private Sub btnGerarQRCode_Click(sender As Object, e As EventArgs) Handles btnGerarQRCode.Click
        If Not String.IsNullOrWhiteSpace(txtUrl.Text) Then
            Try
                tamanhoNormaldoForm()
                Dim url As String = txtUrl.Text
                Dim qrencod As New QRCodeEncoder()
                Dim qrcode As Bitmap = qrencod.Encode(url)
                picImagem.Image = TryCast(qrcode, Image)
            Catch ex As Exception
                MessageBox.Show("Erro : " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        Else
            MessageBox.Show("Informe uma texto para gerar o QRCode", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

 

O código cria uma instância da classe QRCodeEncoder() e usa o método Encode() para gerar o QRCode exibindo-o no controle PictureBox- picImagem.

2- Salvar QRCode

 Private Sub btrnSalvarQRCode_Click(sender As Object, e As EventArgs) Handles btrnSalvarQRCode.Click
        If Not IsNothing(picImagem.Image) Then
            Try
                tamanhoNormaldoForm()
                Dim sfd As New SaveFileDialog()
                sfd.InitialDirectory = "c:\QrCode\"
                sfd.Filter = "PNG | *.png| JPEG| *.jpg | BMP| *.bmp"
                If sfd.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    picImagem.Image.Save(sfd.FileName)
                End If
            Catch ex As Exception
                MessageBox.Show("Erro : " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        Else
            MessageBox.Show("Não existem imagem QRCode", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

 

O código apenas salva a imagem QRCode gerada.

3- Carregar QRCode

Private Sub btnCarregarQRCode_Click(sender As Object, e As EventArgs) Handles btnCarregarQRCode.Click
        Try
            tamanhoNormaldoForm()
            Dim ofd As New OpenFileDialog()
            ofd.InitialDirectory = "c:\QrCode\"
            If ofd.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                picImagem.ImageLocation = ofd.FileName
            End If
        Catch ex As Exception
            MessageBox.Show("Erro : " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

Neste código podemos carregar uma imagem de um QRCode gerado na pasta c:\QRCode.

4- Ler QRCode

  Private Sub btnLerQRCode_Click(sender As Object, e As EventArgs) Handles btnLerQRCode.Click
        If Not IsNothing(picImagem.Image) Then
            Try
                Me.Width = 692
                Me.Height = 352
                Dim decoder As New QRCodeDecoder()
                txtQrCode.Text = decoder.Decode(New QRCodeBitmapImage(TryCast(picImagem.Image, Bitmap)))
            Catch ex As Exception
                MessageBox.Show("Erro : " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        Else
            MessageBox.Show("Selecione a imagem QRCode para decodificar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

O código cria uma instância da classe QRCodeDecoder() e usa o método Decode() para interpretar a imagem QRCode exibindo o resultado.

5- Sair

Private Sub btnSair_Click(sender As Object, e As EventArgs) Handles btnSair.Click
        Me.Close()
    End Sub

6- Rotina tamanhoNormaldoForm() que define o tamanho normal do formulário form1.vb :

  Private Sub tamanhoNormaldoForm()
        Me.Width = 499
        Me.Height = 352
    End Sub

 

Agora podemos executar o projeto e verificar o resultado.

1- Gerando e Salvando QRCode

2- Carregando e lendo um QRCode existente

 

Pegue o projeto completo aqui: versão VB .NET: Gerenciando_QRCode.zip         versão C# : WF_QrCode_CSharp.zip

 

Veja também vídeo aula para este artigo em : VB .NET - Gerando, Salvando e Lendo QRCode

João 3:17 Porque Deus enviou o seu Filho ao mundo, não para que julgasse o mundo, mas para que o mundo fosse salvo por ele.

João 3:18 Quem crê nele não é julgado; mas quem não crê, já está julgado; porquanto não crê no nome do unigênito Filho de Deus.

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

 

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti