我在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类型的八位字节类型,所以我怎么能这样做。
答案 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);