Comparar se imagens do tipo TBitmap são iguais.

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Comparar se imagens do tipo TBitmap são iguais. Mas utilizando o recurso TStream, para ter uma performance muito mais rápida do que a famosa rotina de percorrer uma Matriz de pixels.

Comparar se imagens do tipo TBitmap são iguais. Mas utilizando o recurso TStream, para ter uma performance muito mais rápida do que a famosa rotina de percorrer uma Matriz de pixels.

function  Ret_ImagensIguais(Bitmap1, Bitmap2: TBitmap): Boolean;
var
  Img1, Img2: TStream;
  Cont: integer;
  Ch1, Ch2: char;
begin
  Result := False;
  Img1 := TMemoryStream.Create;
  Img2 := TMemoryStream.Create;

  try
    Bitmap1.SaveToStream( Img1 );
    Bitmap2.SaveToStream( Img2 );

    if  Img1.Size <> Img2.Size then
        Exit
    {endif};

    Cont := 0;
    Img1.Position := 0;
    Img2.Position := 0;
    while Cont < Img1.Size do
    begin
      Img1.Read( Ch1, 1 );
      Img2.Read( Ch2, 1 );
      if  Ch1 <> Ch2 then
          Exit
      {endif};
      Inc( Cont );
    end;
  finally
    Img1.Free;
    Img2.Free;
  end;

  Result := True;
end;

Espero ter colaborado.
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?