Imports Microsoft.VisualBasic Imports System.Drawing Imports System.Drawing.Drawing2D Public Class CImgHelper Public Function SavePhoto(ByVal src As String, ByVal dest As String, ByVal w As Integer) As Boolean Dim imgTmp As System.Drawing.Image Dim sf As Double Dim imgFoto As System.Drawing.Bitmap imgTmp = System.Drawing.Image.FromFile(src) If (imgTmp.Width > w) Then sf = imgTmp.Width / w imgFoto = New System.Drawing.Bitmap(w, CInt(imgTmp.Height / sf)) Dim recDest As New Rectangle(0, 0, w, imgFoto.Height) Dim gphCrop As Graphics = Graphics.FromImage(imgFoto) gphCrop.SmoothingMode = SmoothingMode.HighQuality gphCrop.CompositingQuality = CompositingQuality.HighQuality gphCrop.InterpolationMode = InterpolationMode.High gphCrop.DrawImage(imgTmp, recDest, 0, 0, imgTmp.Width, imgTmp.Height, GraphicsUnit.Pixel) Else imgFoto = imgTmp End If '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 arrayICI() As System.Drawing.Imaging.ImageCodecInfo = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders() Dim jpegICI As System.Drawing.Imaging.ImageCodecInfo = Nothing Dim x As Integer = 0 For x = 0 To arrayICI.Length - 1 If (arrayICI(x).FormatDescription.Equals("JPEG")) Then jpegICI = arrayICI(x) Exit For End If Next myEncoder = System.Drawing.Imaging.Encoder.Quality myEncoderParameters = New System.Drawing.Imaging.EncoderParameters(1) myEncoderParameter = New System.Drawing.Imaging.EncoderParameter(myEncoder, 60L) myEncoderParameters.Param(0) = myEncoderParameter imgFoto.Save(dest, jpegICI, myEncoderParameters) imgFoto.Dispose() imgTmp.Dispose() Return True End Function End Class