Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 17 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
58 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  QRCode em Dephi
Publicado por KMerlotti : Quinta, Março 24, 2011 - 12:25 GMT-3 (5063 leituras)
Comentários 5 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Kelver Merlotti Usando o Google Chart Tools / Image Charts (também conhecido como Chart API), pode-se facilmente gerar QR codes, imagens que são tipos especiais de códigos de barras bi-dimensionais, também conhecidos como "hardlinks".

Os QR Codes armazenam até 4.296 caracteres alfanuméricos de um texto qualquer. Podem ser lidos por dispositivos ópticos com um software apropriado. Estes dispositivos vão desde Leitores Dedicados de QR Codes à telefones celulares.

No Delphi, tudo o que precisamos para gerar um QRCode é fazer uma requisição pelo método GET à seguinte URL:

http://chart.apis.google.com/chart?chs=200x200&cht=qr&chld=M&chl=Active+Delphi

E a resposta a esta requisição será uma imagem (por padrão, PNG, mas pode-se mudar o formato para GIF, adicionando o parâmetro como "chof=gif" na url).

Você pode encontrar mais informações sobre os parâmetros para gerar QR Codes usando o Google Chart API na página do projeto.

Importante: Caso seja necessário codificar mais de 2.000 caracteres, será necessário fazer uma requisição via método POST.

Finalmente, o código fonte em Delphi para criar um Qr Code. Não há muito comentário devido a sua simplicidade:

uses
  PngImage,
  HTTPApp,
  WinInet;
 
type
  TQrImage_ErrCorrLevel=(L,M,Q,H);
 
const
  UrlGoogleQrCode='http://chart.apis.google.com/chart?chs=%dx%d&cht=qr&chld=%s&chl=%s';
  QrImgCorrStr   : array [TQrImage_ErrCorrLevel] of string=('L','M','Q','H');
 
procedure WinInet_HttpGet(const Url: string; Stream: TStream);
const
  BuffSize = 1024*1024;
var
  hInter   : HINTERNET;
  UrlHandle: HINTERNET;
  BytesRead: DWORD;
  Buffer   : Pointer;
begin
  hInter := InternetOpen('', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(hInter) then
  begin
    Stream.Seek(0, 0);
    GetMem(Buffer, BuffSize);
    try
      UrlHandle := InternetOpenUrl(hInter, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
      if Assigned(UrlHandle) then
      begin
        repeat
          InternetReadFile(UrlHandle, Buffer, BuffSize, BytesRead);
          if BytesRead>0 then
            Stream.WriteBuffer(Buffer^, BytesRead);
        until BytesRead = 0;
        InternetCloseHandle(UrlHandle);
      end;
    finally
      FreeMem(Buffer);
    end;
    InternetCloseHandle(hInter);
  end;
end;
 
//Esta função retorna um Stream (PNG dentro) com um Qr code.
procedure GetQrCode(Width, Height: Word; Correction_Level: TQrImage_ErrCorrLevel; 
  const Data: string; StreamImage: TMemoryStream);
Var
  EncodedURL: string;
begin
  EncodedURL := Format(UrlGoogleQrCode, [Width, Height, 
    QrImgCorrStr[Correction_Level], HTTPEncode(Data)]);
  WinInet_HttpGet(EncodedURL,StreamImage);
end;

Clique aqui para fazer o download do exemplo. (639 KB - Delphi 2010 ou superior)

Por: Kelver Merlotti - Coordenador Editorial
Contato: kelver@activedelphi.com.br
Fonte: http://theroadtodelphi.wordpress.com



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: rogeriopett (rogeriopett@gmail.com) : Mar 25, 2011 - 07:38
(Informações sobre o membro | Enviar uma mensagem)
Olá...
mas e se o acesso do usuário à internet é através de proxy? onde passo usuario e senha?


por: grings (grings@grings.eti.br) : Mar 27, 2011 - 06:15
(Informações sobre o membro | Enviar uma mensagem) http://
Como seria feita a interpretar esse codigo?


por: rzzanatta (rzzanatta@yahoo.com.br) : Mar 06, 2012 - 03:21
(Informações sobre o membro | Enviar uma mensagem)
vc teria o codigo pra ler esse QRCode feito aí nesse seu código em Delphi?


por: Rafael@fourinfo (rafael@fourinfo.com.br) : Mai 26, 2014 - 03:39
(Informações sobre o membro | Enviar uma mensagem)
Boa Tarde!
Estou procurando uma forma de gerar um Qr Code através de uma assinatura que o governo gerar, gostaria de saber se alguém poderia me ajudar??
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados