如何使用大图像尺寸?

时间:2012-06-22 16:56:27

标签: c# asp.net-mvc-3

我正在为摄影师创建一个投资组合网站。

我遇到了将照片从大到小调整大小的问题。如果我减小尺寸,大部分质量都会丢失。如何压缩图片以免损失质量?

我的代码:

using (var input = new Bitmap(imageFile.InputStream))
            {
                int width;
                int height;
                if (input.Width > input.Height)
                {
                    width = 411 * input.Width / input.Height;
                    height = 411;
                }
                else
                {
                    height = 411;
                    width = 411 * input.Width / input.Height;
                }

                using (var thumb = new Bitmap(width, height))
                using (var graphic = Graphics.FromImage(thumb))
                {
                    graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    graphic.SmoothingMode = SmoothingMode.AntiAlias;
                    graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;

                    graphic.DrawImage(input, 0, 0, width, height);
                    using (var output = System.IO.File.Create(imagePath))
                    {
                        thumb.Save(output, ImageFormat.Jpeg);
                    }
                }
            }

1 个答案:

答案 0 :(得分:2)

可能在逐步调整大小时获得更好的结果(例如每步10-25%)。尝试同时保存无损格式(如ImageFormat.Png)。

如果质量非常重要,适当的照片编辑工具中的手动转换可能是正确的方法。