sorry, aber man lernt ja nie aus
okay nun mal ein wenig deinen Link verfolgt und da wird auch einiges klar
logisch das dies dann schneller sein sollte.
Deshalb mal der erste Versuch ...
Delphi-Quellcode:
type
TRGBTripleArray = array [0..50000000] of TRGBTriple;
pRGBTripleArray = ^TRGBTripleArray;
var
x,y : Integer;
ScreenP,SearchP : pRGBTripleArray;
SearchBMP,ScreenBMP : TBitmap;
starttime: integer;
begin
Try
SearchBMP := Tbitmap.create;
ScreenBMP := Tbitmap.create;
SearchBMP.Assign(Image1.Picture.bitmap);
ScreenCapture(ScreenBMP);
SearchP := SearchBMP.ScanLine[0];
starttime := GettickCount;
for y := 0 to ScreenBMP.Height - 1 do
ScreenP := ScreenBMP.ScanLine[y];
for x := 0 to ScreenBMP.Width - 1 do
begin
if CompareMem(ScreenP,SearchP[x],SearchBMP.width*3) then // <------- Hier der Fehler
showMessage('gefunden');
end;
Es kommt logischerweise der Fehler ... Pointer und TRGBTriplearray unterschiedliche Typen
Wie lautet der richtige Syntax um dies richtig zu übergeben ?
danke im Voraus.
s0n