Advertisement
TizzyT

HighQualityResize -TizzyT

Apr 5th, 2017
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 1.97 KB | None | 0 0
  1.     Public Function ResizeImage(IMG As Image,
  2.                                 W As Integer,
  3.                                 H As Integer,
  4.                                 Optional Opacity As Single = 1.0,
  5.                                 Optional Blur As Single = 0.0,
  6.                                 Optional CompositingMode As CompositingMode = CompositingMode.SourceOver,
  7.                                 Optional CompositingQuality As CompositingQuality = CompositingQuality.HighQuality,
  8.                                 Optional InterpolationMode As InterpolationMode = InterpolationMode.HighQualityBicubic,
  9.                                 Optional SmoothingMode As SmoothingMode = SmoothingMode.HighQuality,
  10.                                 Optional PixelOffsetMode As PixelOffsetMode = PixelOffsetMode.HighQuality,
  11.                                 Optional WrapMode As WrapMode = WrapMode.TileFlipXY) As Bitmap
  12.         If W < 1 Then W = 1 : If H < 1 Then H = 1
  13.         Dim destRect As New Rectangle(0, 0, W, H), destImage As New Bitmap(W, H)
  14.         destImage.SetResolution(IMG.HorizontalResolution, IMG.VerticalResolution)
  15.         Using g = Graphics.FromImage(destImage) : With g
  16.                 .CompositingMode = CompositingMode
  17.                 .CompositingQuality = CompositingQuality
  18.                 .InterpolationMode = InterpolationMode
  19.                 .SmoothingMode = SmoothingMode
  20.                 .PixelOffsetMode = PixelOffsetMode : End With
  21.             Using WM = New ImageAttributes()
  22.                 If Opacity < 1.0 Then WM.SetColorMatrix(New ColorMatrix With {.Matrix33 = Opacity}, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
  23.                 WM.SetWrapMode(WrapMode)
  24.                 g.DrawImage(IMG, destRect, 0, 0, IMG.Width, IMG.Height, GraphicsUnit.Pixel, WM)
  25.             End Using
  26.         End Using
  27.         If Blur > 0.0 AndAlso Blur <= 1.0 Then Return ResizeImage(ResizeImage(destImage, W - (W * Blur), H - (H * Blur)), W, H)
  28.         Return destImage
  29.     End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement