1

我正在开发一个需要从 Base64 编码字符串写入 .png 图像文件的应用程序。为了做到这一点,我有以下代码:

byte[] tempBytes = Convert.FromBase64String(base64EncodedString);
using (MemoryStream memoryStream = new MemoryStream(tempBytes))
{
  System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream);
  image.Save("C:\\inetpub\\wwwroot\\MySite\\test.png");
}

执行此代码时,我收到以下错误:

System.ArgumentException Parameter is not valid.    

堆栈跟踪的相关部分如下所示:

at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)

据我了解,这意味着我的 base64encodedString 不是有效图像。但是,我不知道如何确定原因可能是什么。上面的代码在服务器上运行。我正在从我也编写的客户端应用程序传递编码字符串。我已经在客户端和服务器端打印了编码字符串以确保它们匹配。考虑到这两个匹配,这意味着我没有正确编码字符串。我该如何追溯原因。

谢谢

4

1 回答 1

0

您可能需要先序列化图像。(然后在解码时反序列化)

于 2012-08-17T13:23:22.710 回答