VB.NET 이미지를 가로/세로 비율에 맞춰서 원하는 크기로 리사이즈

2022. 12. 5. 13:22VB.NET

아래 소스는 이미지의 가로사이즈를 기준으로 800보다 큰 이미지만 비율에 맞춰서 리사이즈 하는 소스이다.

VB.NET에서 이미지를 다루는건 VB6에서 다루는것보다 훨씬 쉽다. 대신에 지원하는 라이브러리를 알아야 하는 단점이 있기는 하다.

 

    Public Function ResizeImage(pImageArr() As Byte) As Byte()
        Dim lpArr() As Byte = {}
        Dim lpWidth, lpHeight As Integer
        Try
            Dim lpStream As Stream = New MemoryStream(pImageArr)
            Dim src = New Bitmap(lpStream)
            lpStream.Close()

            If src.Width > 800 Then
                lpWidth = 800
                lpHeight = src.Height * lpWidth / src.Width
            Else
                lpWidth = src.Width
                lpHeight = src.Height
            End If

            Dim newsize = New Size(lpWidth, lpHeight)
            Dim desc = New Bitmap(src, newsize)
            desc.SetResolution(72, 72)

            Dim lpStream2 = New MemoryStream
            desc.Save(lpStream2, Imaging.ImageFormat.Jpeg)
            lpStream2.Position = 0

            ReDim lpArr(lpStream2.Length - 1)
            lpStream2.Read(lpArr, 0, lpStream2.Length)
            lpStream2.Close()
            Return lpArr

        Catch ex As Exception
            Return lpArr
        End Try
    End Function

이 소스를 활용하면 이미지 파일을 불러와서 새로운 크기로 다시 저장하는 기능쯤은 그대로 사용 가능하다.

반응형