using (MemoryStream mem = new MemoryStream(data))
{
System.Drawing.Image imgPhoto = System.Drawing.Image.FromStream(mem);
}
这是我正在使用的代码。问题是,只要该调试器处理此行:
System.Drawing.Image imgPhoto = System.Drawing.Image.FromStream(mem);
它使错误参数无效。所以在我检查" mem"的参数之后 在调试时,我注意到position参数每次都设置为零。
我注意到了另外一件事: 当我从以url开头的源接收图像时:external.xx.fbcdnsafe ...位置参数未设置为某个值并且始终设置为零,这是我收到错误的时间。请参考屏幕截图。
但对于以URL开头的图片:scontent.xx.fbcdn.n ... position参数设置了一些值。请参阅截图。
For external Sources : url starting with external.xx.fbcdn.net For scontent Sources : url starting with scontent.xx.fbcdn.net
答案 0 :(得分:0)
当流的格式无法识别为图像时,会收到“参数无效”异常。见
"Parameter not valid" exception loading System.Drawing.Image
检查您从scontent.xx.fbcdn.n ...网址收到的数据的内容。也许它们是404错误或其他一些内容,而不是有效的图像数据。