allora quando file l'UPLOAD della foto chiami la funzione Ridimensiona cosi:

Ridimensiona2(path, filename, "x", "y")
x e y naturalmente sono numeri.

e poi scrivi questa e non modificare nulla
codice:
Public Function Ridimensiona2(ByVal path As String, ByVal myUName As String, ByVal width As Integer, ByVal high As Integer)
            'Comiciamo inizializzando alcune variabili per l'anteprima:
            Dim objBMP As System.Drawing.Image
            Dim objGraphics As System.Drawing.Image

            'prendiamo alcune informazioni importanti dall'immagine orginale
            objBMP = New Bitmap(path & myUName)
            Dim imgw As Integer = objBMP.Width
            Dim imgh As Integer = objBMP.Height

            'Ora possiamo ridimensionare in scala l'immagine prendendo i valori dati in input. Questa misura è valida sia che l'immagine sia puù alta o più lunga.

            ' Creating a Thumbnail with scale
            Dim newimgw As Integer
            Dim newimgh As Integer

            If imgw > imgh Then
                newimgw = width
                newimgh = (imgh * width) / imgw
            ElseIf imgh > imgw Then
                newimgw = high
                newimgh = (imgh * high) / imgw
            Else
                newimgw = width
                newimgh = high
            End If
            'Ora possiamo creare l'anteprima
            'objGraphics = objBMP.GetThumbnailImage(newimgw, newimgh, Nothing, IntPtr.Zero)
            'comprimo
            Dim compression As Long = "80"
            Dim myImageCodecInfo As System.Drawing.Imaging.ImageCodecInfo
            Dim myEncoder As System.Drawing.Imaging.Encoder
            Dim myEncoderParameter As System.Drawing.Imaging.EncoderParameter
            Dim myEncoderParameters As System.Drawing.Imaging.EncoderParameters
            myImageCodecInfo = GetEncoderInfo("image/jpeg")
            myEncoder = System.Drawing.Imaging.Encoder.Quality
            myEncoderParameters = New System.Drawing.Imaging.EncoderParameters(1)
            myEncoderParameter = New System.Drawing.Imaging.EncoderParameter(myEncoder, compression)
            myEncoderParameters.Param(0) = myEncoderParameter

            objGraphics = objBMP.GetThumbnailImage(newimgw, newimgh, Nothing, IntPtr.Zero)

            objGraphics.Save(path & "thumb" & myUName, myImageCodecInfo, myEncoderParameters)
        End Function


        Private Function GetEncoderInfo(ByVal MYmimeType As String)
            Dim i As Integer
            Dim encoders As System.Drawing.Imaging.ImageCodecInfo() = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()
            For i = 0 To (encoders.Length - 1)
                If (encoders(i).MimeType = MYmimeType) Then
                    Return encoders(i)
                End If
            Next i
        End Function
ci ho messo una settimana per la compressione però ti garantisco che funziona.
L'unica cosa che puoi modificare è questa:
Dim compression As Long = "80"

che sarebbe il livello di compressione.

ciao