Bei Bitmap32 gehts ohne PixelFormat (oder vergleichbares). Kann dein Problem allerdings nicht nachvollziehen, wenn man reine Bitmaps verwendet.
Ist die ursprüngliche Quelle allerdings ein JPEG z.B., dann musst du den Vergleich etwas Fehlertoleranter gestalten, da hier die Farben von der Kompression verfälscht werden.
Statt bild.Canvas.pixels[x,y]<>bild2.Canvas.pixels[x,y] solltest du eine Vergleichs-Funktion basteln, z.B.:
Delphi-Quellcode:
// Liefert true zurück, wenn Pixel unterschiedlich.
function PixelCompare(A, B: DWORD): boolean;
begin
result := (Abs(RGBQuad(A).rgbBlue - RGBQuad(B).rgbBlue ) +
Abs(RGBQuad(A).rgbGreen - RGBQuad(B).rgbGreen) +
Abs(RGBQuad(A).rgbRed - RGBQuad(B).rgbRed ) ) > 64;
end;
Angewendet wird sie dann so:
if PixelCompare(bild.Canvas.pixels[x,y], bild2.Canvas.pixels[x,y]) then
Diese Funktion lieferte nach ersten Tests gute Resultate, ist aber nicht "wissenschaftlich untermauert".