当前位置:  开发笔记 > 编程语言 > 正文

"参数无效"异常加载System.Drawing.Image

如何解决《"参数无效"异常加载System.Drawing.Image》经验,为你挑选了2个好方法。

为什么我的代码中出现"参数无效"异常:

MemoryStream ms = new MemoryStream(byteArrayIn);
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);

长度byteArrayIn是169014.尽管事实上它没有大于255的值,但我得到了这个例外.



1> Sebastian..:

我有同样的问题,显然现在解决了,尽管这和其他一些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图像.

希望能帮助到你!



2> Jon Skeet..:

我的猜测是byteArrayIn不包含有效的图像数据.

请提供更多信息:

哪一行代码抛出异常?

消息是什么?

你从哪里来byteArrayIn的,你确定它应该包含有效的图像吗?

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有