如何在使用图形类设置插值后保存位图

本文关键字:插值 设置 保存 位图 图形 | 更新日期: 2023-09-27 17:57:44

此代码调整图像大小并将其保存到磁盘。

using (var medBitmap = new Bitmap(fullSizeImage, newImageW, newImageH))
{
     medBitmap.Save(HttpContext.Current.Server.MapPath("~/Media/Items/Images/" + itemId + ".jpg"),
                    ImageFormat.Jpeg);
}

但是,如果我想使用图形类来设置插值,我该如何保存?图形类有一个保存方法,但它不接受任何参数。如何像位图一样将其保存到磁盘?这里有一个修改后的代码片段:

using (var medBitmap = new Bitmap(fullSizeImage, newImageW, newImageH))
{
     var g = Graphics.FromImage(medBitmap);
     g.InterpolationMode = InterpolationMode.HighQualityBicubic;
     //What do I do now?
     medBitmap.Save(HttpContext.Current.Server.MapPath("~/Media/Items/Images/" + itemId + ".jpg"),
                    ImageFormat.Jpeg);
}

我只需要设置插值,然后将其保存到磁盘上。

如何在使用图形类设置插值后保存位图

调用Graphics对象上的DrawImage来更新位图:

using (var medBitmap = new Bitmap(fullSizeImage, newImageW, newImageH))
{
  using (var g = Graphics.FromImage(medBitmap))
  {
    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
    g.DrawImage(medBitmap, 0, 0);
  }
  medBitmap.Save(HttpContext.Current.Server.MapPath("~/Media/Items/Images/" + itemId + ".jpg"), ImageFormat.Jpeg);
}

创建一个具有所需大小的新位图,并设置interpolationMode。然后使用Graphics.DrawImage将全尺寸图像绘制到新位图中。