Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Function ResizeImage(IMG As Image,
- W As Integer,
- H As Integer,
- Optional Opacity As Single = 1.0,
- Optional Blur As Single = 0.0,
- Optional CompositingMode As CompositingMode = CompositingMode.SourceOver,
- Optional CompositingQuality As CompositingQuality = CompositingQuality.HighQuality,
- Optional InterpolationMode As InterpolationMode = InterpolationMode.HighQualityBicubic,
- Optional SmoothingMode As SmoothingMode = SmoothingMode.HighQuality,
- Optional PixelOffsetMode As PixelOffsetMode = PixelOffsetMode.HighQuality,
- Optional WrapMode As WrapMode = WrapMode.TileFlipXY) As Bitmap
- If W < 1 Then W = 1 : If H < 1 Then H = 1
- Dim destRect As New Rectangle(0, 0, W, H), destImage As New Bitmap(W, H)
- destImage.SetResolution(IMG.HorizontalResolution, IMG.VerticalResolution)
- Using g = Graphics.FromImage(destImage) : With g
- .CompositingMode = CompositingMode
- .CompositingQuality = CompositingQuality
- .InterpolationMode = InterpolationMode
- .SmoothingMode = SmoothingMode
- .PixelOffsetMode = PixelOffsetMode : End With
- Using WM = New ImageAttributes()
- If Opacity < 1.0 Then WM.SetColorMatrix(New ColorMatrix With {.Matrix33 = Opacity}, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
- WM.SetWrapMode(WrapMode)
- g.DrawImage(IMG, destRect, 0, 0, IMG.Width, IMG.Height, GraphicsUnit.Pixel, WM)
- End Using
- End Using
- If Blur > 0.0 AndAlso Blur <= 1.0 Then Return ResizeImage(ResizeImage(destImage, W - (W * Blur), H - (H * Blur)), W, H)
- Return destImage
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement