我宣布一个列表来存储图片的网址 并调用“LoadBitmap”方法来获取图像的流。
//this list to store url list
List<string> imageFileList=new List<string>();
//this list to store return image stream
List<Stream> imageFiles = new List<Stream>();
imageFileList.Add("some picture url");
imageFileList.Add("some picture url");
imageFileList.ForEach(delegate(String imgurl)
{
Stream tempFile = LoadBitmap(imgurl);
imageFiles.Add(tempFile);
tempFile.Dispose();
});
private Stream LoadBitmap(string imageUrl)
{
Stream image;
HttpWebRequest request =(HttpWebRequest)WebRequest.Create(imageUrl);
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
{
image=stream;
}
return image;
}
我将图片的流存储在列表中 然后循环以在picturebox中加载这些流
foreach (Stream imageFile in imageFileList)
{
PictureBox eachPictureBox = new PictureBox();
eachPictureBox.SizeMode = PictureBoxSizeMode.AutoSize;
//Load Image from resource
eachPictureBox.Image = Image.FromStream(imageFile);
}
但是当程序运行到“eachPictureBox.Image = Image.FromStream(imageFile);
”时
此行将发生错误:WebException。
我还尝试List<Image>
和imageList
来存储图像然后再次出现错误
任何人都知道如何解决这个问题?
答案 0 :(得分:2)
您已经处理了流,然后您正尝试从流中获取图像。不要处理流或将“存储图像”存储在列表中,并在需要时使用它。例如,您可以使用此类代码:
/images/
然后,当您需要使用图像时,只需从列表中获取它,例如:
List<Image> images = new List<Image>();
...
using (var s = new System.IO.FileStream(imageFilePath, System.IO.FileMode.Open))
{
images.Add(Image.FromStream(s));
}