Ridimensionare immagini – Codice VB.NET

Ridimensionare immagini: come cambiare altezza e larghezza di un’immagine con una semplice funzione in codice VB.NET

Introduzione

Può capitare che in alcune parti del nostro programma occorra per qualche motivo cambiare le dimensioni di una immagine. Ad esempio se stiamo implementando un elaboratore di immagini, sapere come fare a ridimensionare un’immagine tramite vb.net è uno dei passi fondamentali. La funzione che ho ideato, girando qua e la sul web e rielaborando il tutto, che si occupa appunto del ridimensionare immagini è: IngAC_IMMAGINE_RIDIMENSIONA(ByVal Immagine As Bitmap, ByVal N_Dim_X As Integer, ByVal N_Dim_Y As Integer, Optional ByVal preserveAspectRatio As Boolean = True) As Bitmap.

[codesyntax lang=”vbnet”]

   Public Function IngAC_IMMAGINE_RIDIMENSIONA(ByVal Immagine As Bitmap,
                                            ByVal N_Dim_X As Integer,
                                            ByVal N_Dim_Y As Integer,
                                            Optional ByVal preserveAspectRatio As Boolean = True) As Bitmap
        If preserveAspectRatio Then
            Dim O_Dim_X As Integer = Immagine.Width
            Dim O_Dim_Y As Integer = Immagine.Height
            Dim Percent_X As Single = CSng(N_Dim_X) / CSng(O_Dim_X)
            Dim Percent_Y As Single = CSng(N_Dim_Y) / CSng(O_Dim_Y)
            Dim Percent As Single = If(Percent_Y < Percent_X, Percent_Y, Percent_X)
            N_Dim_X = CInt(O_Dim_X * Percent)
            N_Dim_Y = CInt(O_Dim_Y * Percent)
        End If
        Dim bmp As Image = New Bitmap(N_Dim_X, N_Dim_Y)
        Using g As Graphics = Graphics.FromImage(bmp)
            g.InterpolationMode = Drawing2D.InterpolationMode.Bicubic
            g.DrawImage(Immagine, 0, 0, N_Dim_X, N_Dim_Y)
        End Using
        Immagine.Dispose()
        Return bmp
    End Function

[/codesyntax]

La funzione per ridimensionare immagini in VB.NET

La funzione IngAC_IMMAGINE_RIDIMENSIONA ha come input:

  • Immagine che è l’immagine orginale che può provenire sia da file che da picturebox o anche da altri oggetti image o bitmap;
  • N_Dim_X che rappresenta la dimensione orizzontale in pixel dell’immagine;
  • N_Dim_Y che rappresenta la dimensione verticale in pixel dell’immagine;
  • preserveAspectRatio che deve assumere valore vero o falso a seconda che si vogliano rispettare le proporzioni dell’immagine.

Funzionamento di IngAC_IMMAGINE_RIDIMENSIONA()

Il funzionamento è semplicissimo; occorre innanzi tutto includere Imports System.Drawing.Imaging che permette di accedere alle funzionalità grafiche di vb.net e alle varie classi inerenti. Si calcolano le dimensioni e le percentuali di scalatura. g.InterpolationMode si occupa dell’interpolazione (ci sono varie opzioni disponibili) e infine la funzione g.DrawImage completa il resto.

Link Utili:

Ridimensionare immagini - Codice VB.NET

Ridimensionare immagini – Codice VB.NET

You may also like...