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);
        }
Esempio n. 2
0
 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;
 }