ist ja auch logisch, da du jeden farbanteil einen pixel vergleichst (Rot/Grün/Blau).
so sollte es aber gehen:
Code:
procedure CompareImages(image1, image2: TImage);
var
a, b: TBitmap;
c1, c2: PInteger;
x, y, different: Integer;
begin
a:=Image1.Picture.Bitmap;
b:=Image2.Picture.Bitmap;
a.PixelFormat:=pf32bit;
b.PixelFormat:=pf32bit;
different:=0;
for y:=0 to a.Height-1 do begin
c1:=a.Scanline[y];
c2:=b.Scanline[y];
for x:=0 to a.Width-1 do begin
Inc(different, Integer(c1^<>c2^));
Inc(c1);
Inc(c2);
end;
end;
form1.label2.caption:='Unterschiede:'+IntToStr(different);
end;