【问题标题】:Change image size with C# in MVC3?在 MVC3 中使用 C# 更改图像大小?
【发布时间】:2012-05-18 13:32:29
【问题描述】:
[HttpPost]
public ActionResult AddImage(Image model)
{
   if (model.ImageData != null && model.ImageData.ContentLength > 0)
   {
      var fileName = Path.GetFileName(model.ImageData.FileName);
      var pathBig = Path.Combine(Server.MapPath("~/UploadedImages"), fileName);
      var pathSmall = Path.Combine(Server.MapPath("~/UploadedImages"), "small_" + fileName);


      // --> How to change image size to big(800 x 600)
     //      and small (100x80) and save them?

      model.ImageData.SaveAs(pathBig);
      model.ImageData.SaveAs(pathSmall);
   }
}

如何将图像尺寸从大 (800 x 600) 更改为小 (100x80) 并保存?

【问题讨论】:

    标签: c# .net image asp.net-mvc-3


    【解决方案1】:

    你可以试试这个库: http://nuget.org/packages/ImageResizer

    它确实支持 asp.net-mvc: http://imageresizing.net/

    或者您可以获取一个纯 C# 库并在您的应用程序中使用它。查看这些帖子:
    Resize an Image C#
    https://stackoverflow.com/a/2861813/368070

    我发现了这个 sn-p:http://snippets.dzone.com/posts/show/4336

    【讨论】:

    • 谢谢,来自 nuget 的 ImageResizer 太棒了!
    【解决方案2】:

    从框架方法本身执行此操作的最简单方法是使用 Graphics 类的 DrawImage() 方法。

    示例代码如下:

    //For first scale
    Bitmap bmp = new Bitmap(800, 600);
    Graphics gf = Graphics.FromImage(bmp);
    Image userpic = Image.FromStream(/*pass here the image byte stream*/)
    gf.DrawImage(userpic, new Rectangle(0,0,800,600))
    gf.Save(/* the save path */);
    
    //For second scale
    Bitmap bmp = new Bitmap(100, 80);
    Graphics gf = Graphics.FromImage(bmp);
    Image userpic = Image.FromStream(/*pass here the image byte stream*/)
    gf.DrawImage(userpic, new Rectangle(0,0,100,80))
    gf.Save(/* the save path */);
    

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 2015-01-26
      • 1970-01-01
      • 2012-08-04
      • 2010-11-20
      • 2018-12-25
      • 2014-07-16
      • 2013-01-18
      相关资源
      最近更新 更多