function IsBmpSame(bmp1,bmp2: TBitmap): Boolean; var i,j: Integer; ScanLine1,ScanLine2: PByteArray; Count: Integer; begin Result := (bmp1.Height = bmp2.Height) and (bmp1.Width = bmp2.Width) and (bmp1.PixelFormat = bmp2.PixelFormat); if Result then begin i := Integer(bmp1.PixelFormat); if i < 4 then i := 4 else if i = 4 then inc(i); Count := (i - 3) * bmp1.Width - 1; for i:=0 to bmp1.Height-1 do begin ScanLine1 := bmp1.ScanLine[i]; ScanLine2 := bmp2.ScanLine[i]; for j := 0 to Count do if ScanLine1[j] <> ScanLine2[j] then begin Result := False; Exit; end; end; end; end;