Code:Dim imgBytes1() As Byte = New Byte(1) {} imgBytes1 = CType(converter.ConvertTo(bmp1, imgBytes2.GetType()), Byte())
|
|
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
Mine VB.net Converted Coding-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; } }
ERRORS IN MINE CODE-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 = New Byte(1) {} imgBytes1 = CType(converter.ConvertTo(bmp1, imgBytes2.GetType()), Byte())
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)
You can always convert C# to VB.net using the following link:
ConvertCSharp2VB![]()
"The world is coming to an end... SAVE YOUR BUFFERS !"
Thx very much but ...Conversion process didnt work 100 % Corectly..
Tested & complete Code-
FIRST METHOD
SECOND METHODCode: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
Hey i want to ask that frnds Suppose if i have mine full image..& suppose i edit it with paint & cut it half..& then compare full image & half image...then function returns fals....I want to just ask dat can we do i Vb.net..to compare two images one full & one half...& still we get true.....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
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks