0

我通过上传得到一张图片,我想将其转换为图像文件而不保存它。
我该怎么做?

public HttpPostedFileBase BasicPicture { get; set; }

var fileName = Path.GetFileName(BasicPicture.FileName);
// store the file inside ~/App_Data/uploads folder
 var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
BasicPicture.SaveAs(path);

通过此代码,我可以将图片保存在服务器上,但我想将其转换为图像

Image img=(Image) BasicPicture;

但它不起作用。

4

3 回答 3

1

您可以使用以下FromStream方法:

using (Image img = Image.FromStream(BasicPicture.InputStream))
{
    ... do something with the image here
}
于 2013-04-25T08:27:19.703 回答
1

您还可以将HttpPostedFileBase转换为WebImage(这为您提供了更多 API - 类似 Resize 方法):

public ActionResult SaveUploadedImage(HttpPostedFileBase file)
{

    if(file != null)
    {

        var image = new System.Web.Helpers.WebImage(file.InputStream);

        var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), file.FileName);

        image.Save(path);

    }

    return View();
}
于 2013-08-06T18:01:24.143 回答
0

不知道你在做什么以及为什么我可以给出一个完整的智能答案。

就个人而言,我会使用这样的东西来打开图像。您已将图像保存到您的服务器,所以与其投射,为什么不新建一个新图像呢?最终结果是一样的!

WebImage webImage = new WebImage(path);

于 2013-04-25T08:40:26.383 回答