如何将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);
}
我试过了,但正如我提到的它在Image.FromStream(ms)处显示异常,例外是ReadTimeout ='ms.ReadTimeout'抛出了一个类型为'System.InvalidOperationExce ption' –
我将_image.Save_部分移动到_using_块中并更新了答案。它可以解决你的错误。 – kkakkurt
我试过了,但同样的错误{{“参数无效”。}发生在Image.FromStream(ms)行 –