Ejemplo n.º 1
0
        public MemoryStream ResizeImage(Stream imageStream, ImageSizes size)
        {
            var newHeight = size.Size().Height;
            var newWidth = size.Size().Width;

            var oldImage = System.Drawing.Image.FromStream(imageStream);
            double oldHeight = oldImage.Height;
            double oldWidth = oldImage.Width;

            var widthChange = Math.Abs(newWidth - oldWidth);
            var heightChange = Math.Abs(newHeight - oldHeight);

            var greatestChangeDimension = (widthChange > heightChange) ? Dimensions.Width : Dimensions.Height;

            if(greatestChangeDimension == Dimensions.Width)
            {
                var ratio  = (1/(oldWidth/oldHeight));
                newHeight = newWidth * ratio;
            }
            if(greatestChangeDimension == Dimensions.Height)
            {
                var ratio = (1/(oldWidth/oldHeight));
                newWidth = newHeight * ratio;
            }

            var newImage = new Bitmap(oldImage, new Size((int) Math.Floor(newWidth), (int) Math.Floor(newHeight)));
            var newImageMemoryStream = new MemoryStream();
            newImage.Save(newImageMemoryStream, ImageFormat.Png);

            return newImageMemoryStream;
        }