function bmpChange(var SrcBmp:TBitmap) : boolean; var i, j: integer; SrcRGB : pRGBTriple; begin result:=false; for i := 0 to SrcBmp.Height - 1 do begin SrcRGB := SrcBmp.ScanLine[i]; for j := 0 to SrcBmp.Width - 1 do begin if (SrcRGB.rgbtRed = $ff) and (SrcRGB.rgbtGreen =$ff) and (SrcRGB.rgbtBlue = $ff ) then result:=true; end end;end;
function TForm1.bmpChange(SrcBmp:TBitmap) : boolean; var i, j: integer; SrcRGB : pRGBTriple; begin result:=false; for i := 0 to SrcBmp.Height - 1 do begin SrcRGB := SrcBmp.ScanLine[i]; for j := 0 to SrcBmp.Width - 1 do begin if (SrcRGB.rgbtRed = $ff) and (SrcRGB.rgbtGreen =$ff) and (SrcRGB.rgbtBlue = $ff ) then result:=true; end end;end;procedure TForm1.Button1Click(Sender: TObject); begin if bmpChange(Image1.Picture.Bitmap) then showmessage('找到了'); end;
function bmpChange(var SrcBmp:TBitmap) : boolean; 是函数function TForm1.bmpChange(SrcBmp:TBitmap) : boolean; 是我测试的代码,测试通过
不过觉得一个一个像素判断应该可以了吧??
好像效率是低了点哈!找到第一个$FFFFFF的像素点则返回成功,退出循环!
var
i, j: integer;
SrcRGB : pRGBTriple;
begin
result:=false;
for i := 0 to SrcBmp.Height - 1 do
begin
SrcRGB := SrcBmp.ScanLine[i];
for j := 0 to SrcBmp.Width - 1 do
begin
if (SrcRGB.rgbtRed = $ff) and (SrcRGB.rgbtGreen =$ff) and (SrcRGB.rgbtBlue = $ff ) then
result:=true;
end
end;end;
var
i, j: integer;
SrcRGB : pRGBTriple;
begin
result:=false;
for i := 0 to SrcBmp.Height - 1 do
begin
SrcRGB := SrcBmp.ScanLine[i];
for j := 0 to SrcBmp.Width - 1 do
begin
if (SrcRGB.rgbtRed = $ff) and (SrcRGB.rgbtGreen =$ff) and (SrcRGB.rgbtBlue = $ff ) then
result:=true;
end
end;end;procedure TForm1.Button1Click(Sender: TObject);
begin if bmpChange(Image1.Picture.Bitmap) then
showmessage('找到了');
end;
是函数function TForm1.bmpChange(SrcBmp:TBitmap) : boolean;
是我测试的代码,测试通过