/// <summary>
/// 缩放图片
/// </summary>
/// <param name="image">Image 对象</param>
/// <param name="width">图片新的宽度</param>
/// <param name="height">图片新高度</param>
/// <param name="scale">是否按比例缩放图片</param>
/// <returns>Image 对象</returns>
public static Image Resize(Image image, int width, int height, bool scale)
{
// 定义图片的新尺寸
int iWidth, iHeight;
// 如果是按比例缩放图片(即scale = true),生成的图片的尺寸以不超过指定尺寸为准,否则以绝对尺寸为准
if (scale)
{
if (image.Width > image.Height)
{
iWidth = width;
iHeight = image.Height * iWidth / image.Width;
}
else
{
iHeight = height;
iWidth = image.Width * iHeight / image.Height;
}
}
else
{
iWidth = width;
iHeight = height;
}
Rectangle r = new Rectangle(0, 0, iWidth, iHeight);
Image img = new Bitmap(iWidth, iHeight);
using (Graphics g = Graphics.FromImage(img))
{
// 定义缩放图片为高质量
g.CompositingQuality = CompositingQuality.HighQuality;
g.DrawImage(image, r);
}
return img;
}