// ACanvas为二维码的绘画控件,OrgPt为二维码的左上角坐标 procedure EncodeQRData(ACanvas: TCanvas; OrgPt: TPoint; pResult: Pointer); const zQRBright: TColor = clWhite; var P: PDWORD; M: DWORD; I, X, Y: Integer; begin P:= pResult; for Y:= OrgPt.Y to (OrgPt.Y + 63) do begin X:= OrgPt.X; for I:= 0 to 1 do begin M:= $80000000; P^:= 0; repeat if ACanvas.Pixels[X, Y] = zQRBright then begin P^:= P^ or M; end; Inc(X); M:= M shr 1; until M = 0; Inc(P); end; end; end;
// ACanvas为二维码的绘画控件,OrgPt为二维码的左上角坐标
procedure EncodeQRData(ACanvas: TCanvas; OrgPt: TPoint; pResult: Pointer);
const
zQRBright: TColor = clWhite;
var
P: PDWORD;
M: DWORD;
I, X, Y: Integer;
begin
P:= pResult;
for Y:= OrgPt.Y to (OrgPt.Y + 63) do begin
X:= OrgPt.X;
for I:= 0 to 1 do begin
M:= $80000000;
P^:= 0;
repeat
if ACanvas.Pixels[X, Y] = zQRBright then begin
P^:= P^ or M;
end;
Inc(X);
M:= M shr 1;
until M = 0;
Inc(P);
end;
end;
end;