C#byte []到位图System.InvalidOperationException

时间:2016-10-31 10:44:46

标签: c# bitmap

我正在做一个接收图像的C#Web服务肥皂。 我发送一个包含字节字符的字符串。 我在byte []中转换字符串,接下来我想创建Bitmap。

Bitmap img = new Bitmap(ms);生成异常:无效参数。 我在ms对象中有一个错误:System.InvalidOperationException

值包含正确的字符串,imgBytes包含良好的销售数量。

public string GetImage(string value)
{
  byte[] imgBytes = Encoding.ASCII.GetBytes(value);

  MemoryStream ms = new MemoryStream(imgBytes, true);
  Bitmap img = new Bitmap(ms);

Code with debug mode

Exception

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

看起来您的字符串包含base64编码数据。尝试通过Convert.FromBase64String

将其解码为字节数组

答案 1 :(得分:0)

我有类似的问题。基本上你写入你的内存流(在构造函数中),位置指针在末尾。因此,在重用内存流之前,您可以尝试将其位置指针设置为开头。像这样:

return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");

或更一般的方法:

transpose

希望这能解决您的问题。

<强>更新 我认为@heinbeinz的答案也很重要:首先从正确的编码中解码你的字符串(通常是base64),然后设置位置。

相关问题