View Single Post
  #1 (permalink)  
Old 06-08-2009, 3:20 PM
sonia.sardana sonia.sardana is offline
VB.NET Forum Enthusiast
.NET Framework: .NET 2.0 (VS 2005)
 
Join Date: Jan 2009
Age: 24
Posts: 34
Reputation: 16
sonia.sardana is on a distinguished programming path ahead
Default 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
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;
                } 
    }
Mine VB.net Converted Coding-
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
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
Reply With Quote