0

画像のアップロード時に、その画像のコピーを別の名前で保存し、サイズを変更したいと思います。

[HttpPost]
public ActionResult Create(HttpPostedFileBase photo)
{
    string path =  System.Configuration.ConfigurationManager.AppSettings["propertyPhotoPath"].ToString(); 
    if ((photo != null) && (photo.ContentLength > 0))
    {
        var fileName = Path.GetFileName(photo.FileName);
        var pathToSaveOnHdd = Path.Combine(Server.MapPath(path), fileName);
        string dbPhotoPath = string.Format("{0}{1}", path, fileName);
    }
... 
//        to do: make image copy, change dimensions
}
4

2 に答える 2

2

ファイルをコピーするには、このメソッドを使用できますFile.Copy。画像のサイズを変更するには、GDI +、WIC、WPF(これはの例ですsimilar post)や、などのNuGetを含む多くの手法がありImageResizerます。

于 2013-03-19T07:48:44.347 に答える
0

アップロードされたファイルをActionControllerからバイトに変換し、以下に示すようにストリームのサイズを変更できます。

Byte [] image1 = new Byte [photo.ContentLength-1]; HttpPostedFileBaseファイル=photo.PostedFile; file.InputStream.Read(image1、0、file.ContentLength-1); System.IO.MemoryStream ms = new System.IO.MemoryStream(image1);

また、グラフィッククラスを使用して、以下に示すように、目的のサイズで画像を再描画できます。System.Drawing.Image image = Image.FromStream(ms);

グラフィックグラフィック=Graphics.FromImage(image); graphics.DrawImage(image、0、0、image.Width、image.Height);

于 2013-03-19T08:41:31.953 に答える