delphi的一个ScanLine内存找子图的函数,不知道有没有问题。

2016-08-22 10:24:18来源:http://rzl01.blog.51cto.com/3004337/1605263作者:RZL_01人点击


functionTForm1.findimg(pBmpMain,pBmpSub:TBitmap):Boolean;
var
Pmain,psub,ptmp:PByteArray;
x,y,z:Integer;
b:boolean;
begin
result:=false;
b:=false;
fory:=0topBmpMain.Height-pBmpSub.Heightdo
begin
Pmain:=pBmpMain.ScanLine[y];
psub:=pBmpSub.ScanLine[0];
forx:=0topBmpMain.Width-pBmpSub.Widthdo
begin
b:=CompareMem(@Pmain[x*3],psub,sizeof(@psub));
ifbthenbegin
forz:=0topBmpSub.Height-1dobegin
Pmain:=pBmpMain.ScanLine[y+z];
psub:=pBmpSub.ScanLine[z];
b:=CompareMem(@Pmain[x*3],psub,pBmpSub.Width*3);
ifnotbthenbreak;
end;
ifbthenBreak;
end;
ifbthenbreak;
end;
ifbthenbreak;
end;
result:=b;
end;

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台