Home > .net > Ridimensionare un’immagine in VB.NET

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

  1. Emanuele Rispondi
    25 maggio 2011 at 16:29

    Semplice e funzionale.
    Grazie

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>