我一直在寻找解决这个问题的方法,但是没有真正找到一个。以下是我一直试图让它工作但没有成功的拼凑代码。
private Image GetAlbumArt(String url)
{
byte[] rBytes;
Image Testing;
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
WebResponse myResponse = myRequest.GetResponse();
Stream rStream = myResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(rStream))
{
rBytes = br.ReadBytes(1000000);
br.Close();
}
myResponse.Close();
using (MemoryStream imageStream = new MemoryStream(rBytes, 0, rBytes.Length))
{
imageStream.Write(rBytes, 0, rBytes.Length);
Testing = Image.FromStream(imageStream, true);
Testing.Save("temp.jpg"); //Error here!
}
return Testing;
}
我实际上宁愿不保存位图,而是将位图返回给父函数,但这也行不通(如果您想使用位图,无法关闭内存流)。
真正奇怪的是,如果我提供一个不同的jpg网址,它就可以正常工作。
不起作用:http://2.images.napster.com/mp3s/2492/resources/207/116/files/207116316.jpg 有效: http://3.images.napster.com/mp3s/2256/resources/301/404/files/301404546.jpg