Back
Resize Image

Author: Admin 03/27/2021
Language: Visual Basic .NET


Description:

A cool image resizing function.

Article:

I was working on an app that saved images to SQL but I need to resize them to save space.

Public Function ResizeImage(ByVal image As Image, ByVal size As Size, Optional ByVal preserveAspectRatio As Boolean = True) As Byte()
        Try
            Dim newWidth As Integer
            Dim newHeight As Integer
            If preserveAspectRatio Then
                Dim originalWidth As Integer = image.Width
                Dim originalHeight As Integer = image.Height
                Dim percentWidth As Single = CSng(size.Width) / CSng(originalWidth)
                Dim percentHeight As Single = CSng(size.Height) / CSng(originalHeight)
                Dim percent As Single = IIf(percentHeight < percentWidth, percentHeight, percentWidth)
                newWidth = CInt(originalWidth * percent)
                newHeight = CInt(originalHeight * percent)
            Else
                newWidth = size.Width
                newHeight = size.Height
            End If

            Dim newImage As Image = New Bitmap(newWidth, newHeight)
            Using graphicsHandle As Graphics = Graphics.FromImage(newImage)
                graphicsHandle.InterpolationMode = InterpolationMode.HighQualityBicubic
                graphicsHandle.DrawImage(image, 0, 0, newWidth, newHeight)
            End Using

            Dim imgCon As New ImageConverter()
            Dim blob As Byte() = DirectCast(imgCon.ConvertTo(newImage, GetType(Byte())), Byte())

            Return blob

        Catch ex As Exception
            'Return blob
        End Try
    End Function


Back
Comments
Add Comment
There are no comments yet.