【问题标题】:How to Convert Base64 String into Png Image Mvc5 C#?如何将 Base64 字符串转换为 Png 图像 Mvc5 C#?
【发布时间】:2017-05-29 16:33:50
【问题描述】:

我正在尝试将 Base64 编码的字符串转换为 Png 图像,但代码显示参数异常在 Image.FromStream() 上无效。调试后,我在 MemoryStream Object "ReadTimeout = 'ms.ReadTimeout' throw an exception of type 'System.InvalidOperationException'" 上遇到了这个错误。我被卡住了,有什么解决方案或替代方法可以在 C# 中将字符串转换为 Png?

这是我的代码

string code = "string";
var databytes = Encoding.Unicode.GetBytes(code);
var base64 = Convert.ToBase64String(databytes);
Byte[] Bytes = Convert.FromBase64String(base64);
//Stream bytes
MemoryStream ms = new MemoryStream(Bytes, 0, Bytes.Length);
//convert image

Image newImage = Image.FromStream(ms);
newImage.Save("~/Content/");    

【问题讨论】:

    标签: c# asp.net-mvc model-view-controller


    【解决方案1】:

    试试这个:

    byte[] bytes = Convert.FromBase64String(base64);
    Image image;
    using (MemoryStream ms = new MemoryStream(bytes))
    {
        image = Image.FromStream(ms);
    }
    

    【讨论】:

      【解决方案2】:

      你可以通过这种方式将Base64字符串转换为png:

          byte[] bytes = Convert.FromBase64String(base64);
      
          Image image;
          using (MemoryStream ms = new MemoryStream(bytes))
          {
              image = Image.FromStream(ms);
              image.Save("~/Content/", System.Drawing.Imaging.ImageFormat.Png);
          }
      

      【讨论】:

      • 我试过了,但正如我提到的,它在 Image.FromStream(ms) 处显示异常,异常是 ReadTimeout = 'ms.ReadTimeout' 引发了类型为“System.InvalidOperationException”的异常
      • 我将 image.Save 部分移到 using 块内并更新了答案。它可以修复你的错误。
      • 我试过了,但同样的错误 {{"Parameter is not valid."} 发生在 Image.FromStream(ms) 行
      • 实际上我正在将部分视图转换为字符串,然后我想从该字符串生成 Png
      • 您是否尝试使用 UTF8 对字符串进行编码? var databytes = Encoding.UTF8.GetBytes(code);
      猜你喜欢
      • 2020-03-22
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 2014-07-21
      相关资源
      最近更新 更多