You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用ImageConverter.ConvertFrom(file.InputStream)报“参数无效”的原因咨询

问题:ImageConverter.ConvertFrom(file.InputStream) 抛出“Parameter is not valid”错误

原始报错代码

using (var image = (Image)converter.ConvertFrom(file.InputStream)) //此处报错
{
    //适配全高清1920×1080
    ResizeImage(image, 1440, 900, 70, fullPath);
}

运行时提示错误:Parameter is not valid(参数无效)

修改后的可运行代码

System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();

using(MemoryStream memoryStream = new MemoryStream())
{
    file.InputStream.CopyTo(memoryStream);
    using (var image = (Image)converter.ConvertFrom(memoryStream.ToArray()))
    {
        //适配全高清1920×1080
        ResizeImage(image, 1440, 900, 70, fullPath);
    }
}

原因解析

  • 流的位置问题:file.InputStream这类流的当前读写位置可能不是起始点(比如之前被其他操作读取过),而ImageConverter.ConvertFrom需要从流的起始位置读取完整的图片数据,位置不对就会解析失败,抛出参数无效错误。
  • 流的访问限制:部分输入流(比如网络下载的文件流、Web请求中的文件流)存在只读或单次读取的限制,直接传入转换器时,可能因为流无法被完整读取或读取过程中权限/状态变化导致失败。
  • 内存字节数组的稳定性:把流数据复制到MemoryStream再转为字节数组,相当于把图片的完整二进制数据缓存到内存里,形成一个独立、可重复读取的数据源,完全规避了原始流的位置、访问权限或生命周期问题,转换器能稳定解析出图片对象。

内容的提问来源于stack exchange,提问作者K V Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:29:51