AdvancedLauncher.Tools.Imaging.JpegEncoder.resizeImage C# (CSharp) Метод

resizeImage() приватный статический Метод

private static resizeImage ( Image imgToResize, Size size ) : Image
imgToResize System.Drawing.Image
size System.Drawing.Size
Результат System.Drawing.Image
        private static Image resizeImage(Image imgToResize, Size size)
        {
            int sourceWidth = imgToResize.Width;
            int sourceHeight = imgToResize.Height;

            float nPercent = 0;
            float nPercentW = 0;
            float nPercentH = 0;

            if (size.Width == -1)
                nPercent = ((float)size.Height / (float)sourceHeight);
            else if (size.Height == -1)
                nPercent = ((float)size.Width / (float)sourceWidth);
            else {
                nPercentW = ((float)size.Width / (float)sourceWidth);
                nPercentH = ((float)size.Height / (float)sourceHeight);

                if (nPercentH < nPercentW)
                    nPercent = nPercentH;
                else
                    nPercent = nPercentW;
            }

            int destWidth = (int)(sourceWidth * nPercent);
            int destHeight = (int)(sourceHeight * nPercent);

            Bitmap b = new Bitmap(destWidth, destHeight);
            Graphics g = Graphics.FromImage((Image)b);
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;

            g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
            g.Dispose();

            return (Image)b;
        }