ok per ora ho risolto così:
codice:
Private Sub ridimensiona(ByVal nomeImg As String, ByVal nomePath As String, ByVal destPath As String, ByVal wFinaleImg As Integer, ByVal hFinaleImg As Integer)
Dim nomeCompletoImg As String = nomePath & "/" & nomeImg
Dim IntXSize As Integer
Dim IntYSize As Integer
Dim IntHalfWidth As Integer
Dim IntHalfHeight As Integer
Dim X As Integer
Dim Y As Integer
Dim compressione As Long = 1
'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(nomeCompletoImg)
'Misure dell'immagine
Dim IntImgW As Integer = ObjBMP.Width
Dim IntImgH As Integer = ObjBMP.Height
'Nuove misure dell'immagine servono per mantenere le proporzioni, per il mio caso mi basta ridimensionare in base all'altezza
Dim IntNewImgW As Integer
Dim IntNewImgH As Integer
IntNewImgH = hFinaleImg
IntNewImgW = (hFinaleImg / IntImgH) * IntImgW
ObjGraphics = ObjBMP.GetThumbnailImage(IntNewImgW, IntNewImgH, Nothing, IntPtr.Zero)
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
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 = "image/jpeg") Then
myImageCodecInfo = encoders(i)
End If
Next i
myEncoder = System.Drawing.Imaging.Encoder.Quality
myEncoderParameters = New System.Drawing.Imaging.EncoderParameters(1)
myEncoderParameter = New System.Drawing.Imaging.EncoderParameter(myEncoder, compressione)
myEncoderParameters.Param(0) = myEncoderParameter
ObjGraphics = ObjBMP.GetThumbnailImage(IntNewImgW, IntNewImgH, Nothing, IntPtr.Zero)
'Qui viene fatto il crop, se non vi è necessario saltatelo
Dim ObjSysDrawImg As New System.Drawing.Bitmap(wFinaleImg, hFinaleImg, PixelFormat.Format24bppRgb)
Dim ObjGraphics2 As Graphics = Graphics.FromImage(ObjSysDrawImg)
ObjGraphics2.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
ObjGraphics2.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
ObjGraphics2.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
IntXSize = ObjGraphics.Width - 1
IntYSize = ObjGraphics.Height - 1
IntHalfWidth = IntXSize / 2
IntHalfHeight = IntYSize / 2
X = IntHalfWidth - (wFinaleImg / 2)
Y = IntHalfHeight - (hFinaleImg / 2)
ObjGraphics2.DrawImage(ObjGraphics, New Rectangle(0, 0, wFinaleImg, hFinaleImg), New Rectangle(X, Y, wFinaleImg, hFinaleImg), GraphicsUnit.Pixel)
ObjGraphics.Dispose()
'------------------------------------------------------
If IO.Directory.Exists(destPath) = False Then
IO.Directory.CreateDirectory(destPath)
End If
ObjSysDrawImg.Save(destPath & "\" & nomeImg, myImageCodecInfo, myEncoderParameters)
ObjBMP.Dispose()
ObjGraphics2.Dispose()
ObjSysDrawImg.Dispose()
End Sub
Tutto funziona solo che l'immagine esce di qualità infima 
Com'è possibile? :°°°