DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   VB.NET (http://www.daniweb.com/forums/forum58.html)
-   -   Help needed in Converting C# Code to VB.Net Code (http://www.daniweb.com/forums/thread196560.html)

sonia sardana Jun 8th, 2009 4:17 pm
Help needed in Converting C# Code to VB.Net Code
 
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
  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;
                }
    }

Mine VB.net Converted Coding-
 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

ERRORS IN MINE CODE-
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

Tekmaven Jun 8th, 2009 4:56 pm
Re: Help needed in Converting C# Code to VB.Net Code
 
I used this converter: http://www.dotnetspider.com/convert/Csharp-To-Vb.aspx. It seems to compile the app then use the MSIL to convert it to VB, which is the best way of translation. If this doesn't work, I can manually translate it, so let me know. This is the result:

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

sonia sardana Jun 9th, 2009 4:22 pm
Re: Help needed in Converting C# Code to VB.Net Code
 
The link that you gave is not converting the code 100% Correctly...But sir ur code is working 100 % Correctly....Thx very Much.....

sonia sardana Jun 9th, 2009 5:03 pm
Re: Help needed in Converting C# Code to VB.Net Code
 
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....


All times are GMT -4. The time now is 9:17 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC