【问题标题】:How to save image stream in c#?如何在c#中保存图像流?
【发布时间】:2011-05-26 21:48:56
【问题描述】:

我在 c# 中有一个图像流,我想使用 c# 代码将它们保存在硬盘上。当我尝试这样做时,我发现内存不足,而我从来没有足够的内存。

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

HttpPostedFileBase file


 file.SaveAs(location);

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

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

image.fromFile 行 [3] 导致内存不足的异常。有人可以告诉我如何在 c# 中做到这一点。

使用 Ajax 请求来自 PNG 的文件是八位字节类型和 Mime 类型,所以我该怎么做。

【问题讨论】:

  • 先生。斯皮尔伯格,你有两次保存它的原因吗?
  • 我猜他想把所有图片都转成png格式
  • 我的图像大小约为 2 MB @MARC
  • 你确定你的图片真的是图片吗?
  • 因为我需要转换为 PNG 和 chrome,如果文件真的是图像 @ Bala,则使用 Mime 八位字节而不是 png

标签: c# asp.net-mvc


【解决方案1】:

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

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

【讨论】:

  • 参数无效。实际上 chrome 将 Mime 类型的应用程序/八位字节放入 ajax 请求中,即使文件是 PNG
【解决方案2】:
file.SaveAs(location);

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

【讨论】:

    【解决方案3】:
            Bitmap bmp = new Bitmap(file.InputStream);
            bmp.Save(filename, ImageFormat.Png);
    

    【讨论】:

      猜你喜欢
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      相关资源
      最近更新 更多