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

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

但是,如果要使用图形类设置插值,如何保存它?图形类有一个save方法,但是它没有任何参数。如何将其像位图一样保存到磁盘?以下是修改后的代码段:
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);
}

关于c# - 使用图形类设置插值后如何保存位图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6132252/

10-10 14:41