2012-01-14 2 views
3
[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×600)から小さく(100×80)に変更して保存するにはどうすればよいですか?MVC3でC#で画像サイズを変更しますか?

答えて

5

あなたはこのライブラリを試みることができる: http://nuget.org/packages/ImageResizer

それはasp.net-MVCをサポートしています: http://imageresizing.net/

それとも、純粋なC#のLIBを取得し、あなたのアプリケーションでそれを使用することができます。これらの記事を参照してください。
Resize an Image C#
https://stackoverflow.com/a/2861813/368070

そして、このスニペットは、私が見つけた:http://snippets.dzone.com/posts/show/4336

+1

おかげで、nugetからImageResizerは素晴らしいです! –

1

自体はグラフィックスクラスの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 */); 
関連する問題