DeddyH war wieder mal schneller, da ich es schon habe poste ich es trotzdem mal ...
BTW.: wenn Du es es optimieren willst steig von Pixels auf Scanline um, Beiträge hierzu liefert die Forensuche bis zum Abwinken
Die bildest im Moment die Differenz nur für das letzte Pixel Deiner Schleifen, man könnte es so lösen
Delphi-Quellcode:
var
i,j,z:Integer;
begin
z := 0;
For i:=0 to image1.width - 1 do // Erstes Bild pixelweise auslesen
Begin
For j:=0 to image1.height -1 do
Begin
farbe1:= image1.canvas.pixels[i,j];
farbe2:= image2.canvas.pixels[i,j];
wert:= (farbe1 and clred)-(farbe2 and clred); // Differenzwert bilden
inc(z);
AddFound(z , i, j, wert);
end;
end;
Zahlen müssen in Strings umgewandelt werden wenn Du sie in einem Stringgrid darstellen willst
Delphi-Quellcode:
procedure TForm1.AddFound(nr, x, y, wert :Integer);
begin
if StringGrid1.Rowcount < (nr + 1) then StringGrid1.Rowcount := (nr + 1);
StringGrid1.Cells[0, nr ] := IntToStr(Nr);
StringGrid1.Cells[1, nr ] := IntToStr(x);
StringGrid1.Cells[2, nr ] := IntToStr(y);
StringGrid1.Cells[3, nr ] := IntToStr(wert);
end;