我正在为摄影师创建一个投资组合网站。
我遇到了将照片从大到小调整大小的问题。如果我减小尺寸,大部分质量都会丢失。如何压缩图片以免损失质量?
我的代码:
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);
}
}
}
答案 0 :(得分:2)
你可能在逐步调整大小时获得更好的结果(例如每步10-25%)。尝试同时保存无损格式(如ImageFormat.Png)。
如果质量非常重要,适当的照片编辑工具中的手动转换可能是正确的方法。