meine Funktion macht eigentlich das gleiche wie der schleifenteil von 3_of_8, nur dass Canvas.Pixels seeeeehhhr lahm ist, deswegen per scanline.
Scanline arbeitet (wie der Name schon sagt) zeilenweise...er liest das Bitmap zeile für zeile ein und schreib den inhalt dieser Zeile in ein mehrdimensionales array (einmal für bitmap1 (srcRow) und einmal für bitmap2 (destrow)).
dieses array wird pixel für pixel durchlaufen und mit dem anderen array an gleicher position verglichen (jeder Farbkanal einzeln).
mal bisschen Pseudocode zum verständnis (array, was scanline ausspuckt):
Delphi-Quellcode:
const
rgbtRed=0;
rgbtGreen=1;
rgbtBlue=2;
type
TPixel=array[rgbtRed..rgbtBlue] of byte; //die 3 Farbwerte pro Pixel
TLine=array of TPixel; //alle Pixel einer zeile (SrcRow,DestRow in der Funktion)
Hoffe es ist jetzt bisschen verständlicher geworden...
ansonsten mal die
OH befragen oder wenn das nicht hilf hier
Gruß Frank