delphi 绘制二维码

uses
   vcl.Graphics, DelphiZXingQRCode;

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;

  QRCode := TDelphiZXingQRCode.Create;
  try
    QRCode.Data := ACode;
    QRCode.Encoding := TQRCodeEncoding(qrUTF8BOM);
    QRCode.QuietZone := 1;
    QRCode.Data := ACode;

    AImg.Height := QRCode.Rows * IMG_SCALE;
    AImg.Width := QRCode.Columns * IMG_SCALE;

    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;

转载于:https://my.oschina.net/u/2343604/blog/1933925

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值