uses
vcl.Graphics, DelphiZXingQRCode;ui
procedure CreateQRCode(AImg: vcl.Graphics.TBitMap; const ACode: String);
const
IMG_SCALE = 25; //放大倍數
var
QRCode: TDelphiZXingQRCode;
Row, Column: Integer;
begin
if (AImg = nil) or (Trim(ACode) = '') then Exit;it
QRCode := TDelphiZXingQRCode.Create;
try
QRCode.Data := ACode;
QRCode.Encoding := TQRCodeEncoding(qrUTF8BOM);
QRCode.QuietZone := 1;
QRCode.Data := ACode;coding
AImg.Height := QRCode.Rows * IMG_SCALE;
AImg.Width := QRCode.Columns * IMG_SCALE;im
AImg.Canvas.Lock;
AImg.Canvas.Brush.Color := clWhite;
AImg.Canvas.FillRect(Rect(0, 0, AImg.Width, AImg.Height));
AImg.Canvas.Brush.Color := clBlack;
for Row := 0 to QRCode.Rows - 1 do
for Column := 0 to QRCode.Columns - 1 do
if QRCode.IsBlack[Row, Column] then
begin
AImg.Canvas.FillRect(Rect(Column * IMG_SCALE, Row * IMG_SCALE,
Column * IMG_SCALE + IMG_SCALE, Row * IMG_SCALE + IMG_SCALE));
end;
AImg.Canvas.Unlock;
finally
QRCode.Free;
end;
end;di