首页 > Windows开发 > 详细

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

时间:2015-01-18 15:50:23      阅读:373      评论:0      收藏:0      [点我收藏+]
function TForm1.findimg(pBmpMain,pBmpSub: TBitmap) :Boolean;
var
Pmain,psub,ptmp: PByteArray;
x,y,z:Integer;
b: boolean;
begin
    result:=false;
    b:=false;
    for y:=0 to pBmpMain.Height-pBmpSub.Height do
    begin
    Pmain := pBmpMain.ScanLine[y];
    psub := pBmpSub.ScanLine[0];
        for x:=0 to pBmpMain.Width-pBmpSub.Width do
        begin
            b:=CompareMem(@Pmain[x*3],psub,sizeof(@psub));
            if  b then  begin
              for z := 0 to pBmpSub.Height - 1 do begin
                Pmain := pBmpMain.ScanLine[y+z];
                psub := pBmpSub.ScanLine[z];
                b:=CompareMem(@Pmain[x*3],psub,pBmpSub.Width * 3);
                if not b then break;
              end;
                if b then Break;
            end;
            if b then break;
        end;
        if b then break;
    end;
    result:=b;
end;


本文出自 “RZL_01的博客” 博客,请务必保留此出处http://rzl01.blog.51cto.com/3004337/1605263

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

原文:http://rzl01.blog.51cto.com/3004337/1605263

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!