我有一个页面发送html5画布数据,编码为base64 bmp图像(使用此算法http://devpro.it/code/216.html)到服务器端进程,该进程将其转换为System.Drawing.Image对象,并执行对它进行一些操作。System.ArgumentException:参数无效
在我当地的环境,这个工作得很好,但在我的EC2实例我得到以下错误:
System.ArgumentException: Parameter is not valid. at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData) at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement)
我的代码如下:
System.Drawing.Image image = null;
string b64string = "...";
byte[] sf = Convert.FromBase64String(b64string);
using (MemoryStream s = new MemoryStream(sf, 0, sf.Length))
{
image = System.Drawing.Image.FromStream(s, false);
}
...
这里是一个文本文件一个样本b64string,我正在测试:https://docs.google.com/leaf?id=0BzVLGmig1YZ3MTM0ODBiNjItNzk4Yi00MzI5LWI5ZWMtMzU1OThlNWEyMTU5&hl=en_US
我也试过以下,并有相同的结果:
System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
image = converter.ConvertFrom(sf) as System.Drawing.Image;
任何有识之士将不胜感激!
您在本地和ec2实例上运行此框架的哪个版本? – Oded
您的意思是说实际测试数据(该文件)无法在ec2实例上解码,但可以在您的开发机器上?例如。在开发和服务器测试中不可能有不同的数据被处理。 –
对不起,忘了提及.NET 4.0。 – ari