【问题标题】:Parameter not valid - System.argumentexception - Image Handling参数无效 - System.argumentexception - 图像处理
【发布时间】:2010-12-02 09:03:30
【问题描述】:

以下代码昨天一整天都运行良好

public Image getImage()
    {
        String connectionString = "URL GOES HERE, CANT POST WORK DATA";
        Image img;
        HttpWebRequest request = WebRequest.Create(connectionString) as HttpWebRequest;
        using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
        {
            StreamReader reader = new StreamReader(response.GetResponseStream());
            img= Image.FromStream(reader.BaseStream);
        }

        return img;
    }

它从工作提供的网络服务中获取图像,我昨天用了很多,但现在我得到的只是行标题中说明的异常

img= Image.FromStream(reader.BaseStream);

问题在于它对除我之外的其他所有人都有效(您可以在浏览器中手动输入网址并在其中显示图像,这对我也不起作用)

有人有什么想法吗?

谢谢

【问题讨论】:

    标签: c# image exception


    【解决方案1】:

    两件事:

    1) StreamReader 没有用,它只用于文本流,可以直接使用 response.GetResponseStream()

    2) Image.FromStream available here 的文档说“您必须在图像的生命周期内保持流打开。”,因此您不能使用“使用”语句创建流,因为它将是在区块结束时关闭。

    【讨论】:

    • 我不是要否认你所说的,我保证我不是,只是昨天使用我上面的代码它工作了一整天,是什么让它突然停止了?跨度>
    • 嗯...错误往往会隐藏起来,因此有错误的代码可能会起作用,而且大多数时候,它,因此更难找到:)
    • 所以您建议将 streamreader reader = ..... 更改为直接调用 response.GetResponseStream() 以替换该行,删除 using 子句,但是我如何分配我的 img 变量没有阅读器对象了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 2011-09-26
    相关资源
    最近更新 更多