A naso il problema e' l'encoding.
Dal Vangelo secondo MSDN:
"If no encoder exists for the file format of the image, the Portable Network Graphics (PNG) encoder is used. When you use the Save method to save a graphic image as a Windows Metafile Format (WMF) or Enhanced Metafile Format (EMF) file, the resulting file is saved as a Portable Network Graphics (PNG) file. This behavior occurs because the GDI+ component of the .NET Framework does not have an encoder that you can use to save files as .wmf or .emf files."
In soldoni, mi sa che tu mandi una JPEG (lossy) e il tuo codice salva una PNG (lossless).
Questa e' la ragione per cui invece di
objGraphics.Save(filePath & "small_" & strNomeFoto)
proverei a usare esplicitamente
objGraphics.Save(filePath & "small_" & strNomeFoto, <b>ImageFormat.Jpeg</b>)
Se non e' questo, verificherei le impostazioni di default della compressione JPEG - magari la tua immagine iniziale e' molto piu' compressa.
HTH
--Alessandro