delphi 64位數的字串怎么轉換成8位元組陣列?
uj5u.com熱心網友回復:
顯示二維碼的面積定為64X64像素點,且顯示在中央,每一個點用一個位表示,0表示暗點,1表示亮點。每一行64位,共8個位元組 表示。共64行,位元組左邊是高位,右邊是低位。
傳送整屏點陣資料需要64*8=512個位元組,一次發送完
uj5u.com熱心網友回復:
// 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;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/39527.html
標籤:語言基礎/算法/系統設計
下一篇:求問delphi 7二次開發問題
