Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#25

AW: Thread läuft nicht parallel --

  Alt 10. Jan 2014, 10:16
Zitat:
1.Schritt beide Bitmaps in Streams zu speichern.
Ist schon falsch, da auch hier Daten herumkopiert werden.

Du kannst dir mit Bitmap.ScanLine[0] einen Pointer beschaffen. Das passiert ohne Kopiererei - Windows sagt dir damit nur wo genau die Daten denn jetzt sind. Der Pointer, der da heraus kommt zeigt auf den Anfang der ersten Zeile. Jetzt musst du auf das Bildformat aufpassen (24bit/32bit) und kannst loslegen und vergleichen. Um einen Pixel einzulesen beitet sich die Verwendung von TRGBTriple oder gar TRGBTripleArray an.

Die weiteren Zeilen bekommst du, indem du bei ScanLine entsprechen größere Zahlen einsetzt.
Hier ist eine relativ ausführliche SO Antwort dazu: http://stackoverflow.com/a/13583452

Das sollte dann schonmal relativ flott sein. Wenn du möchtest kannst du auch einen angepassten Boyer Moore (oder einen anderen) Algorithmus benutzen, um die Bytesequenz in der Zeile zu suchen. Das sollte dann für große Suchbilder noch etwas schneller sein.

Geändert von jfheins (10. Jan 2014 um 10:28 Uhr)
  Mit Zitat antworten Zitat