winform 写一段适应图像大小的代码
时间: 2023-02-09 20:05:38 浏览: 183
首先,需要引用 System.Drawing 命名空间,然后使用以下代码来缩放图像:
```
using System.Drawing;
// 缩放图像的函数
public Image ScaleImage(Image image, int maxWidth, int maxHeight)
{
var ratioX = (double)maxWidth / image.Width;
var ratioY = (double)maxHeight / image.Height;
var ratio = Math.Min(ratioX, ratioY);
var newWidth = (int)(image.Width * ratio);
var newHeight = (int)(image.Height * ratio);
var newImage = new Bitmap(newWidth, newHeight);
using (var graphics = Graphics.FromImage(newImage))
graphics.DrawImage(image, 0, 0, newWidth, newHeight);
return newImage;
}
// 使用示例
var image = Image.FromFile("image.png");
var scaledImage = ScaleImage(image, 200, 200);
// 将缩放后的图像显示在 PictureBox 控件中
pictureBox1.Image = scaledImage;
```
在这段代码中,首先通过计算图像的宽度和高度与最大宽度和最大高度的比例来确定缩放比例。然后,使用这个比例来计算缩放后图像的新宽度和新高度,并使用 Graphics.FromImage 方法从新图像创建 Graphics 对象,然后使用 DrawImage 方法将原图像绘制到新图像上。最后,返回新图像。
请注意,在使用完图像后,应该使用 image.Dispose() 方法释放图像的内存。
阅读全文