如何在c#中保存图像流?

时间:2011-05-26 12:28:53

标签: c# asp.net-mvc

我在c#中有一个图像流,我想使用c#代码将它们保存在硬盘上。当我想要做到这一点时,我发现内存不足时,我有足够的记忆。

所以我确信我的代码会泄漏资源,所以有人可以告诉我如何做到这一点

HttpPostedFileBase file


 file.SaveAs(location);

 Image image = Image.FromFile(location,false);

 image.Save(location, System.Drawing.Imaging.ImageFormat.Png);

image.fromFile line [3]导致异常超出内存。有谁能告诉我如何在c#中做到这一点。

使用Ajax请求来自PNG的文件是作为Mime类型的八位字节类型,所以我怎么能这样做。

3 个答案:

答案 0 :(得分:4)

假设您要将图像转换为PNG(否则无需保存图像一次,重新加载并重新保存),避免加载图像两次可能是个好主意。看看这样的事情是否有帮助:

Image.FromStream(file.InputStream, false).Save(location, System.Drawing.Imaging.ImageFormat.Png);

答案 1 :(得分:1)

file.SaveAs(location);

已将图像保存在给定的位置或引发异常,因此不需要以下行。

答案 2 :(得分:0)

        Bitmap bmp = new Bitmap(file.InputStream);
        bmp.Save(filename, ImageFormat.Png);