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;
+ }
+ }
+}