Показать сообщение отдельно
  #2  
Старый 03.03.2013, 17:44
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Код:
procedure TForm1.Timer2Timer(Sender: TObject);
var
fl: TStringList;
i,j: integer;
begin
Timer2.Enabled:=false;
Fl:=TStringList.Create;
Search('C:\**',fl);
jpg1.LoadFromFile('C:\***\test1.jpg');
BT1.Assign(JPG1);
jpg2.LoadFromFile('C:\***\test2.jpg');
BT2.Assign(JPG2);
for i:=0 to BT1.Height - BT2.Height do
 for j:=0 to BT1.Width - BT2.Width do
  begin
   if BT1.Canvas.Pixels[j,i]=BT2.Canvas.Pixels[0,0] then
   if CheckImage(i,j) then ShowMessage('Успех!');
  end;
fl.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
jpg1 := TJPEGImage.Create;
jpg2 := TJPEGImage.Create;
BT1:=TBitMap.Create;
BT2:=TBitMap.Create;
end;

function TForm1.CheckImage(h, w: integer): boolean;
var
i,j,mh,mw: integer;
begin
result:=false;
mh:=h+BT2.Height-1;
mw:=w+BT2.Width-1;
result:=true;
for i:=h to mh do
 for j:=w to mw do
  begin
   if (BT1.Canvas.Pixels[j,i]<>BT2.Canvas.Pixels[j-w,i-h]) then
    begin
     result:=false;
     exit;
    end;
  end;
end;
вроде исправил кое что но код все равно не робит
прикрепил простые картинки по которым проверяю

ловит совпадение в 22,19 и 0,0 пикселей а дальше в 23,19 и 1,0 почему то у него они не равны
Изображения
Тип файла: jpg test1.jpg (813 байт, 23 просмотров)
Тип файла: jpg test2.jpg (631 байт, 22 просмотров)
Ответить с цитированием