Forum: Programmieren allgemein
by Blup,
10. Jan 2014
Bei aller Freude, da sind noch reichlich Fehler drin...
pf1bit: Laenge := Ceil(SearchBMP.Width / 8);
pf4bit: Laenge := Ceil(SearchBMP.Width / 2);
CompareMem vergleicht nur ganze Byte, wenn dein gesuchtes Bild mitten in einem Byte anfängt oder nicht nur ganze Byte belegt, wirst du es so nicht finden.
pf15bit: Laenge := Ceil(SearchBMP.Width * 15 / 8);
Forum: Programmieren allgemein
by Blup,
9. Jan 2014
Du versuchst die Geschwindigkeit zu verdoppeln in dem die Arbeit auf 2 Threads verteilt wird. Der eigentliche Zeitfresser ist aber das ständige Kopieren der ScreenBMP in die TempBMP. Wenn man dies vermeiden könnte, lies sich die Geschwindigkeit vermutlich vervielfachen, ohne mit Threads zu arbeiten. Dazu müsste halt lediglich die Funktion Compare2Bitmaps angepasst werden. Das sollte relativ...
Forum: Programmieren allgemein
by Blup,
9. Jan 2014
Mal abgesehen von der falschen Verwendung von Threads...
Das Kopieren eines Ausschnitts der ScreenBMP in die tempBmp ist hier der eigentlich bremsende Faktor.
Es erscheint mir sinnvoller die Funktion "Compare2Bitmaps" so anzupassen, dass statt zwei kompletter Bitmaps, nur der angegebene Bereich verglichen wird.
Compare2Bitmaps(80, SearchBMP, ScreenBMP, rectSource);