利用TBDBitmapData对象查找两张图片上的不同,从右上角开始利用双层循环遍历两图上的所有象素点,并相互比较。不完整代码如下:

procedure TForm1.Button5Click(Sender: TObject);
var
    Bmp1,Bmp2 : TBDBitmapData;
    Left,Top : Integer;
    IsExit : Boolean;
begin
    Bmp1:=TBDBitmapData.Create;
    Bmp2:=TBDBitmapData.Create;

    Bmp1.LoadFromFile('文件名1');
    Bmp2.LoadFromFile('文件名2');

    //假设两张图片一样大

    IsExit:=false;
    for Top:=0 to Bmp1.Height-1 do
    begin
        for Left:=0 to Bmp1.Width-1 do
        begin
            if Bmp1[Left,Top]<>Bmp2[Left,Top] then
            begin
                //在(Left,Top)位置两张图片有不同

                //相应的处理...

                if {如果不继续查找其它不同} then
                begin
                    IsExit:=true; //用以退出循环
                    break;
                end;
            end;
        end;
        if IsExit then break;
    end;

    Bmp1.Free;
    Bmp2.Free;
end;

以上代码不完整,可以根据需要进行修改,TBDBitmapData的其它详细使用方法可以参考:Delphi下实现全屏快速找图找色

posted on 2010-09-14 13:29  °ι 、曲 终  阅读(478)  评论(0编辑  收藏  举报