如何将Base64字符串转换为Png图像Mvc5 C#?

问题描述:

我试图将Base64编码的字符串转换为Png图像,但代码显示参数的例外在Image.FromStream()上无效。调试后,我在MemoryStream对象上发现了这个错误“ReadTimeout ='ms.ReadTimeout'抛出了'System.InvalidOperationException'类型的异常。我卡住了,是否有任何解决方案或选择将字符串转换为Png在C#中?如何将Base64字符串转换为Png图像Mvc5 C#?

这里是我的代码

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/");  

试试这个:

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

您可以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); 
    } 
+0

我试过了,但正如我提到的它在Image.FromStream(ms)处显示异常,例外是ReadTimeout ='ms.ReadTimeout'抛出了一个类型为'System.InvalidOperationExce ption' –

+0

我将_image.Save_部分移动到_using_块中并更新了答案。它可以解决你的错误。 – kkakkurt

+0

我试过了,但同样的错误{{“参数无效”。}发生在Image.FromStream(ms)行 –