Ridimensionare un’immagine in VB.NET
2 gennaio 2010
1 Comment »
Una semplice funzione per eseguire il resize di un’immagine in VB.NET:
Public Function ResizeImage(ByVal percorsoImmagine As String) As Boolean Dim bm As Bitmap 'dimensioni originali Dim originalX as Integer Dim originalY as Integer 'dimensioni finali Dim destinationX as Integer Dim destinationY as Integer 'cartella e nome di destinazione Dim destinationFolder as String Dim destinationFileName As String 'carica immagine originale bm = New Bitmap(percorsoImmagine) 'ricava dimensioni originali dell'immagine originalX = bm.Width originalY = bm.Height 'imposta dimensioni finali destinationX = 600 destinationY = 500 'riduzione dell'immagine Dim thumb As New Bitmap(destinationX, destinationY) Dim g As Graphics = Graphics.FromImage(thumb) 'impostazione del metodo di interpolazione utilizzato per il resize g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic g.DrawImage(bm, New Rectangle(0, 0, destinationX, destinationY), New Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel) g.Dispose() 'salvataggio dell'immagine ridimensionata destinationFolder = "C:\" destinationFileName = "resized_" & System.IO.Path.GetFileNameWithoutExtension(percorsoImmagine) thumb.Save(destinationFolder & destinationFileName & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg) bm.Dispose() thumb.Dispose() Return True End Function
Nella funzione le dimensioni finali sono entrambe fisse, ma è possibile eseguire un resize proporzionale ad una delle due dimensioni. Per un resize con altezza fissa (Y) si deve sostituire
destinationX = 600 destinationY = 500
con
destinationY = 500 destinationX = CInt((destinationY / originalY) * originalX)
Per un resize con larghezza fissa (X) utilizzare:
destinationX = 600 destinationY = CInt((destinationX / originalX) * originalY)
Tags: .net

Comments:1