Comparar Imagens
Uma das formas de comparar se duas imagens são iguais é convertendo as imagens, utilizando o método Convert.ToBase64String()
, para uma string. Este método converte um array de 8-bit inteiros para a sua representação com base em 64 dígitos.
É um método muito simples para algumas aplicações onde é necessário comparar imagens.
Atenção: não confundir com tamanho, dimensão, etc.
Exemplo
''' <summary>
''' Converte a imagem para base 64
''' </summary>
''' <param name="image">Imagem a converter</param>
''' <param name="format">Formato da imagem</param>
Public Function ImageToBase64String(ByVal image As Image, ByVal format As Imaging.ImageFormat) As String
Dim base64String As String = String.Empty
Using memory As New IO.MemoryStream()
image.Save(memory, format)
base64String = Convert.ToBase64String(memory.ToArray())
End Using
Return base64String
End Function
' Verifica se as imagens são iguais ou não
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
' Guarda as imagens em memória
Dim img1 As Image = Image.FromFile("c:\image1.jpg")
Dim img2 As Image = Image.FromFile("c:\image2.jpg")
' Converte as imagens para base 64
Dim base64String1 As String = ImageToBase64String(img1, Imaging.ImageFormat.Jpeg)
Dim base64String2 As String = ImageToBase64String(img2, Imaging.ImageFormat.Jpeg)
' Compara se as strings geração são iguais
If base64String1 = base64String2 Then
MessageBox.Show("As imagens são iguais")
Else
MessageBox.Show("As imagens são diferentes")
End If
End Sub