1

我正在为摄影师创建一个作品集网站。

我面临从大到小调整照片大小的问题。如果我缩小尺寸,质量就会丢失很多。如何压缩图片以免损失质量?

我的代码:

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);
                    }
                }
            }
4

1 回答 1

2

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

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

于 2012-06-22T17:04:27.807 回答