2015-10-11 262 views
0

我有此错误:System.Drawing.Bitmap参数无效

parameter is not valid.

在此行中:

System.Drawing.Bitmap("~\\father\\chocolate.png"); 
+0

请显示完整的代码。 – Slashy

+0

这不是一个有效的路径。您需要使用ASP.Net API来解析'〜'。 – SLaks

回答

2

这是非常不可能的"~\\father\\chocolate.png"是对自己有效的文件名 - 我怀疑你想把它从一个ASP.NET相对文件名映射到真实的本地文件名。

例如:

var bitmap = new Bitmap(Server.MapPath("~/father/chocolate.png")); 

(我个人建议使用正斜杠,而不是反斜杠这里 - 他们很好的工作在Windows下,他们仍然会在Linux下工作;他们不需要逃避。)

1

这可能是对这个建议有点晚,但对于其他人查看这个帖子的缘故:

如果使用/在你的代码的地方打开你的形象,这可能是一个很好的理由。

确保在完成后关闭任何内存流或图像对象的实例。

我刚刚遇到这个错误的形式:HttpException(0x80004005):参数无效。

调试后,我意识到处理图像与这个错误有关。

令人惊叹的是,虽然图像已经存储在我们的数据库中,并没有被使用,它似乎功能保留它。

如果您已将png文件实例化为Image对象,请确保关闭任何MemoryStream/Stream对象并处理该图像(将其设置为空)并执行垃圾回收以将其从内存中释放。

希望这有助于!