diff --git a/Mk0.Tools.Images/Mk0.Tools.Images.csproj b/Mk0.Tools.Images/Mk0.Tools.Images.csproj index 7b392fa..388c7ce 100644 --- a/Mk0.Tools.Images/Mk0.Tools.Images.csproj +++ b/Mk0.Tools.Images/Mk0.Tools.Images.csproj @@ -40,6 +40,7 @@ + diff --git a/Mk0.Tools.Images/ResizeImage.cs b/Mk0.Tools.Images/ResizeImage.cs new file mode 100644 index 0000000..607c29c --- /dev/null +++ b/Mk0.Tools.Images/ResizeImage.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Imaging; + +namespace Mk0.Tools.Images +{ + public class Resize + { + public static Bitmap ResizeImage(Image image, int width, int height) + { + var destRect = new Rectangle(0, 0, width, height); + var destImage = new Bitmap(width, height); + + destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); + + using (var graphics = Graphics.FromImage(destImage)) + { + graphics.CompositingMode = CompositingMode.SourceCopy; + graphics.CompositingQuality = CompositingQuality.HighQuality; + graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; + graphics.SmoothingMode = SmoothingMode.HighQuality; + graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; + + using (var wrapMode = new ImageAttributes()) + { + wrapMode.SetWrapMode(WrapMode.TileFlipXY); + graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); + } + } + + return destImage; + } + } +}