Авторизация



Лицензионный софт
Dr.Web сканер online
Donate
Yandex
 
Yandex
Введите сумму: 
 руб.
счёт 410011559727938
 
Сейчас на сайте
  • [Bot]
Сейчас на сайте:
  • 1 гость
  • 1 робот
Новые пользователи:
  • Barbarasfign
  • DennisMism
Всего пользователей: 117
Статистика
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterToday62
mod_vvisit_counterYesterday133
mod_vvisit_counterThis week555
mod_vvisit_counterLast week1268
mod_vvisit_counterThis month3994
mod_vvisit_counterLast month5798
mod_vvisit_counterAll days575526

Online (20 minutes ago): 4
Your IP: 3.224.127.143
,
Today: Окт 22, 2020

Google API уже подготовил готовую схему для генерации QR-code.
Нам нужно только воспользоваться предложенными функциями для получения изображения QR-Code в формате PNG.

На рисунке изображен QR-Code полученный  по ссылке:

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

По умолчанию генерируется избражение в формате png, но добавив к запросу параметр chof=gif можно сгенерировать в формате gif. Здесь приведен полный список параметров для запроса QR-Code через Google API.
Google отказался от поддержки генерации QR-Code.
Предлагается библиотека для генерации QR-Code программно.

 

 

 

 

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;

//функция возвращает  Stream (Png Image) с Qr-кодом.
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;


Библиотека генерации QR-Code для Delphi
Файл для скачивания:
ФайлОписаниеРазмер файлаЗагрузкиПоследнее изменение
Скачать файл (quricol.zip)quricol.zipБиблиотека генерации QR-Code для Delphi274 Kb257023/12/2011 18:02
 

Комментарии 

 
#1 bitbow 11.05.2017 22:29
thanks :D
Цитировать