private static Image ResizeImage(Image originalBitmap, int maxDimension, ResizingApproach resizingApproach) { float aspectX = maxDimension / (float)originalBitmap.Width; float aspectY = maxDimension / (float)originalBitmap.Height; float actualAspect = 0; if (resizingApproach == ResizingApproach.Max) { actualAspect = Math.Min(aspectX, aspectY); } else if (resizingApproach == ResizingApproach.Min) { actualAspect = Math.Max(aspectX, aspectY); } else if (resizingApproach == ResizingApproach.Horizontal) { actualAspect = aspectX; } else if (resizingApproach == ResizingApproach.Vertical) { actualAspect = aspectY; } int sourceWidth = (int)(originalBitmap.Width * actualAspect); int sourceHeight = (int)(originalBitmap.Height * actualAspect); var resized = new Bitmap(sourceWidth, sourceHeight); Graphics g = Graphics.FromImage(resized); g.DrawImage(originalBitmap, new Rectangle(0, 0, resized.Width, resized.Height)); return(resized); }
private void SetResizingApproach(ResizingApproach approach) { maxRadio.Checked = approach == ResizingApproach.Max; minRadio.Checked = approach == ResizingApproach.Min; horizontalRadio.Checked = approach == ResizingApproach.Horizontal; verticalRadio.Checked = approach == ResizingApproach.Vertical; }