从byte []创建和保存图像会导致参数无效异常

Dav*_*ave 7 c# asp.net image bytearray stream

我已经实现了以下连接到webservice并从给定站点下载favicon的功能,并将其保存到我存储在数据库中的byte []中.我现在想要设置它以便将图标保存到磁盘.但是当我尝试从byte []创建图像时,我得到一个"参数无效".

我的代码如下..

stream.Write(imageByteArray, 0, imageByteArray.Length);
Image i = Image.FromStream(stream); // EXCEPTION HAPPENS HERE.
i.Save(@"C:\tmp\" + filename + ".ico");
Run Code Online (Sandbox Code Playgroud)

例外发生在中间行.

这个代码在十分之一的情况下完美地工作了九次,但是对于一些favicons,甚至认为图标是一个有效的图像(或者至少它看起来是,并且当它指向它时它在浏览器中显示)我得到了这个例外.

有没有人有任何想法?我在这里拔头发!

谢谢

戴夫

编辑:出现抛出错误的数组中的值为127.

Jul*_*ard 21

没有必要将它放入图像中,只需直接吐出字节:

var fs = new BinaryWriter(new FileStream(@"C:\\tmp\\" + filename + ".ico", FileMode.Append, FileAccess.Write));
fs.Write(imageByteArray);
fs.Close();
Run Code Online (Sandbox Code Playgroud)