我有一个页面,允许用户上传图片。问题是我的老用户无法自己调整图像大小。我想让他们上传任何大小的图像,然后当服务器得到它时,它会创建这张图片的一个小副本。

最佳答案

有很多方法可以调整图像大小,但我喜欢这个

System.Drawing.Image image = System.Drawing.Image.FromFile("FilePath");
int newwidthimg = 160;
float AspectRatio = (float)image.Size.Width / (float)image.Size.Height;
int newHeight = Convert.ToInt32(newwidthimg / AspectRatio);
Bitmap thumbnailBitmap = new Bitmap(newwidthimg, newHeight);
Graphics thumbnailGraph = Graphics.FromImage(thumbnailBitmap);
thumbnailGraph.CompositingQuality = CompositingQuality.HighQuality;
thumbnailGraph.SmoothingMode = SmoothingMode.HighQuality;
thumbnailGraph.InterpolationMode = InterpolationMode.HighQualityBicubic;
var imageRectangle = new Rectangle(0, 0, newwidthimg, newHeight);
thumbnailGraph.DrawImage(image, imageRectangle);
thumbnailBitmap.Save("FilePath", ImageFormat.Jpeg);
thumbnailGraph.Dispose();
thumbnailBitmap.Dispose();
image.Dispose();

我已经修复了宽度,因为我希望我的所有图像都根据纵横比具有 160 的宽度和高度

10-06 00:18