Welche Delphiversion verwendest du?
Ich schätz mal, eine etwas ältere, in der es diesen Typ nicht gibt.
Du kannst sie hier definieren:
Delphi-Quellcode:
type
PRGBTriple = ^TRGBTriple;
TRGBTriple = record
rgbtBlue: Byte;
rgbtGreen: Byte;
rgbtRed: Byte;
end;
TPRGBTripleRow = Array of PRGBTriple;
Die Funktion liefert dir die Koordinaten der linkeren oberen Ecke im Bild, wo es halt gefunden wurde.
Anwendung:
Delphi-Quellcode:
var
Position: TPoint;
begin
Position := findPicture(RiesengroßesBild, SuchBild);
ShowMessage('Gefunden an der Stelle: ' + IntToStr(Position.X) + ' - ' + IntToStr(Position.Y));
end;
Edit: Skalierung wird nicht berücksichtigt! Dies ginge aber auch ganz einfach (jedoch übelst unperformant) indem man das Suchbild zuerst mal richtig runterskaliert, dann schrittweise hochskaliert bis man dieselben Dimensionen wie das "RiesngroßeBild" hat und meine Suchfunktion drüberjagt!
Edit2: Das Ganze ist mehr oder weniger die Implementierung von dem
hier (Anwendung:
hier)