用C#写一个图片按 等比例压缩至固定宽度的算法
时间: 2024-02-06 19:08:50 浏览: 25
以下是用C#编写的等比例压缩图片至固定宽度的算法:
```csharp
public static Image ResizeImage(Image image, int width)
{
int originalWidth = image.Width;
int originalHeight = image.Height;
int height = (int)(originalHeight * ((double)width / originalWidth));
Bitmap newImage = new Bitmap(width, height);
using (Graphics graphics = Graphics.FromImage(newImage))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.DrawImage(image, 0, 0, width, height);
}
return newImage;
}
```
这个函数接受一个Image类型的图片和一个int类型的宽度参数,返回一个按比例压缩后的Image类型的图片。该函数会根据原始图片的宽高比例计算出新图片的高度,并创建一个新的Bitmap对象。然后使用Graphics对象将原始图片绘制到新的Bitmap对象中,并设置InterpolationMode来保证图片质量。最后返回新的Bitmap对象作为等比例压缩后的图片。