![]() |
Click here to advertise with us
|
|
|||||||
| VB.NET General Discussion VB.NET general discussion area |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|||
|
Hey frnds, I m comparing two images in VB.Net..I get the code in C# & dat code is working 100 % Correctly..Now want to convert dat code to vb.net..& i need help in just converting two lines-
C# EXAMPLE Code:
private void Form1_Load(object sender, EventArgs e)
{
Bitmap img1= new Bitmap ("D:\\Documents and Settings\\Sonia\\Desktop\\sonia1.bmp");
Bitmap img2 = new Bitmap("D:\\Documents and Settings\\Sonia\\Desktop\\sonia2.bmp");
bool a;
a= doImagesMatch(img1,img2 );
}
public bool doImagesMatch( Bitmap bmp1, Bitmap bmp2)
{
try
{
//each image to a byte array
ImageConverter converter = new ImageConverter();
//create 2 byte arrays, one for each image
byte[] imgBytes1 = new byte[1];
byte[] imgBytes2 = new byte[1];
//convert images to byte array
imgBytes1 = (byte[])converter.ConvertTo(bmp1, imgBytes2.GetType());
imgBytes2 = (byte[])converter.ConvertTo(bmp2, imgBytes1.GetType());
//now compute a hash for each image from the byte arrays
SHA256Managed sha = new SHA256Managed();
byte[] imgHash1 = sha.ComputeHash(imgBytes1);
byte[] imgHash2 = sha.ComputeHash(imgBytes2);
//now let's compare the hashes
for (int i = 0; i < imgHash1.Length && i < imgHash2.Length; i++)
{
if (!(imgHash1[i] == imgHash2[i]))
return false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
return true;
}
}
Code:
Public Function doImagesMatch(ByVal bmp1 As Bitmap, ByVal bmp2 As Bitmap) As Boolean
Dim converter As ImageConverter = New ImageConverter()
Dim i As Integer
Dim imgBytes1 As Byte() = New Byte(1)
Dim imgBytes2 As Byte() = New Byte(1)
imgBytes1 = (byte())converter.ConvertTo(bmp1, imgBytes2.GetType());
imgBytes2 = (byte())converter.ConvertTo(bmp2, imgBytes1.GetType());
Dim sha As SHA256Managed = New SHA256Managed()
Dim imgHash1 As Byte() = sha.ComputeHash(imgBytes1)
Dim imgHash2 As Byte() = sha.ComputeHash(imgBytes2)
For i = 0 To imgHash1.Length And imgHash2.Length
If ((imgHash1(i) <> imgHash2(i))) Then
doImagesMatch = False
Else
doImagesMatch = True
End If
Next
End Function
Dim imgBytes1 As Byte() = New Byte(1) - Type Byte has no constructors imgBytes1 = (byte())converter.ConvertTo(bmp1, imgBytes2.GetType()) -- 'Byte' is a type and cannot be used as an expression, '.' expected |
|
||||
|
Code:
Dim imgBytes1() As Byte = {1}
Dim imgBytes2() As Byte = {1}
__________________
Don't give TypeCasting Errors a chance, turn ON Option Strict! Greatest Obfuscator ever: EazFuscator (Freeware) Greatest Reflection Tool ever: .NET Reflector (Freeware) with Add-Ins Greatest Introspection Tool ever: Gendarme (GPL) Greatest MySQL FrontEnd ever: MySQL-Front (Shareware), HeidiSQL (GPL) |
|
|||
|
Thx very much but ...Conversion process didnt work 100 % Corectly..
Tested & complete Code- FIRST METHOD Code:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim img1 As Bitmap = Image.FromFile("D:\Documents and Settings\Sonia\Desktop\sonia1.bmp")
Dim img2 As Bitmap = Image.FromFile("D:\Documents and Settings\Sonia\Desktop\sonia2.bmp")
Dim a As Boolean
a = doImagesMatch(img1, img2)
End Sub
Public Function doImagesMatch(ByVal bmp1 As Bitmap, ByVal bmp2 As Bitmap) As Boolean
Dim converter As ImageConverter = New ImageConverter()
Dim i As Integer
Dim imgBytes1(0) As Byte
Dim imgBytes2(0) As Byte
imgBytes1 = CType(converter.ConvertTo(bmp1, imgBytes1.GetType()), Byte())
imgBytes2 = CType(converter.ConvertTo(bmp2, imgBytes1.GetType()), Byte())
Dim sha As SHA256Managed = New SHA256Managed()
Dim imgHash1 As Byte() = sha.ComputeHash(imgBytes1)
Dim imgHash2 As Byte() = sha.ComputeHash(imgBytes2)
For i = 0 To imgHash1.Length - 1 And imgHash2.Length - 1
If ((imgHash1(i) <> imgHash2(i))) Then
doImagesMatch = False
Else
doImagesMatch = True
End If
Next
End Function
Code:
Dim img1 As Bitmap = New Bitmap("D:\\Documents and Settings\\Sonia\\Desktop\\sonia1.bmp")
Dim img2 As Bitmap = New Bitmap("D:\\Documents and Settings\\Sonia\\Desktop\\sonia2.bmp")
Dim a As Boolean
a= doImagesMatch(img1,img2)
End Sub
Public Function doImagesMatch(ByVal bmp1 As Bitmap, ByVal bmp2 As Bitmap) As Boolean
Try
'each image to a byte array
Dim converter As ImageConverter = New ImageConverter()
'create 2 byte arrays, one for each image
Dim imgBytes1() As Byte = New Byte(1) {}
Dim imgBytes2() As Byte = New Byte(1) {}
'convert images to byte array
imgBytes1 = CType(converter.ConvertTo(bmp1, imgBytes2.GetType()), Byte())
imgBytes2 = CType(converter.ConvertTo(bmp2, imgBytes1.GetType()), Byte())
'now compute a hash for each image from the byte arrays
Dim sha As SHA256Managed = New SHA256Managed()
Dim imgHash1() As Byte = sha.ComputeHash(imgBytes1)
Dim imgHash2() As Byte = sha.ComputeHash(imgBytes2)
'now let's compare the hashes
Dim i As Integer
For i = 0 To imgHash1.Length And i < imgHash2.Length- 1 Step i + 1
If Not (imgHash1(i) = imgHash2(i)) Then
Return False
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
Return False
End Try
Return True
End Function
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|