1. Dirección de descarga: GitHub - foxitsoftware/DelphiZXingQRCode: puerto Delphi de la funcionalidad de código QR de ZXing, una biblioteca de procesamiento de imágenes de código de barras.
2. Pasos de uso:
1) Hacer referencia al archivo de la unidad.
//引用单元
uses
DelphiZXIngQRCode
2) Escribe la función.
//生成qrcode函数
procedure GenerateQRCodeBitmap(const SourceText: string; const Encoding: TQRCodeEncoding;
const QuietZone: Integer; const Bitmap: TBitmap);
var
QRCode: TDelphiZXingQRCode;
Row, Column: Integer;
begin
QRCode := TDelphiZXingQRCode.Create;
try
QRCode.Data := SourceText;
QRCode.Encoding := Encoding;
QRCode.QuietZone := QuietZone;
Bitmap.SetSize(QRCode.Rows, QRCode.Columns);
for Row := 0 to QRCode.Rows - 1 do
begin
for Column := 0 to QRCode.Columns - 1 do
begin
if (QRCode.IsBlack[Row, Column]) then
begin
Bitmap.Canvas.Pixels[Column, Row] := clBlack;
end else
begin
Bitmap.Canvas.Pixels[Column, Row] := clWhite;
end;
end;
end;
finally
QRCode.Free;
end;
end;
3) llamar
procedure TForm1.Button5Click(Sender: TObject);
begin
QRCodeBitmap:=TBitmap.Create;
GenerateQRCodeBitmap('http://www.example.com', TQRCodeEncoding.qrAuto, 4, QRCodeBitmap);
image1.Picture.Bitmap:=QRCodeBitmap;
QRCodeBitmap.free;
end;
3. Explicación del código:
Este proceso acepta cuatro parámetros: SourceText indica el texto que se codificará en un código QR, Codificación indica el método de codificación, QuietZone indica el tamaño de la zona silenciosa y Bitmap es un objeto TBitmap que se usa para guardar el código QR generado.
En el proceso, primero creamos un objeto TDelphiZXingQRCode, configuramos sus propiedades Data, Encoding y QuietZone. Luego cree un objeto TBitmap y establezca su tamaño en las propiedades Filas y Columnas del objeto TDelphiZXingQRCode. A continuación, usamos un bucle for para iterar a través de la propiedad IsBlack del objeto TDelphiZXingQRCode y establecer el color de píxel correspondiente en blanco o negro. Finalmente, liberamos el objeto TDelphiZXingQRCode y redibujamos PaintBox1.
4. El efecto es el siguiente: