为什么我的代码中出现"参数无效"异常:
MemoryStream ms = new MemoryStream(byteArrayIn); System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
长度byteArrayIn
是169014.尽管事实上它没有大于255的值,但我得到了这个例外.
我有同样的问题,显然现在解决了,尽管这和其他一些gdi +异常非常误导,我发现实际问题是发送到Bitmap构造函数的参数无效.我有这个代码:
using (System.IO.FileStream fs = new System.IO.FileStream(inputImage, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)) { try { using (Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false)) { try { bitmap.Save(OutputImage + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp); GC.Collect(); } catch (Exception ex) { throw ex; } } } catch (ArgumentException aex) { throw new Exception("The file received from the Map Server is not a valid jpeg image", aex); } }
以下行导致错误:
Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false)
文件流是从从Map Server下载的文件构建的.我的应用程序错误地发送请求以获取图像,并且服务器返回了jpg扩展名的内容,但实际上是一个html告诉我发生了错误.所以我正在拍摄该图像并试图用它构建一个Bitmap.修复是控制/验证图像的有效jpeg图像.
希望能帮助到你!
我的猜测是byteArrayIn
不包含有效的图像数据.
请提供更多信息:
哪一行代码抛出异常?
消息是什么?
你从哪里来byteArrayIn
的,你确定它应该包含有效的图像吗?