C# 如何在收集中保存图像并在picturebox中加载
我声明一个列表来存储图像的urlC# 如何在收集中保存图像并在picturebox中加载,c#,winforms,C#,Winforms,我声明一个列表来存储图像的url 并调用“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<
并调用“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;
}
但当程序运行到“eachPictureBox.Image=Image.FromStream(imageFile);
”此行将出现错误:WebException。
我还尝试
List
和imageList
存储图像,然后再次出现错误。有人知道如何解决这个问题吗 您已经处理了流,然后尝试从流中获取图像。不要处理流,而是将图像存储在列表中,并在需要时使用它。例如,您可以使用以下代码:
List<Image> images = new List<Image>();
...
using (var s = new System.IO.FileStream(imageFilePath, System.IO.FileMode.Open))
{
images.Add(Image.FromStream(s));
}
您已经处理了流,然后尝试从流中获取图像。不要处理流,而是将
图像
存储在列表中,并在需要时使用。不应缓存流,应将位图直接加载到列表中。
List<Image> images = new List<Image>();
...
using (var s = new System.IO.FileStream(imageFilePath, System.IO.FileMode.Open))
{
images.Add(Image.FromStream(s));
}
pictureBox1.Image = images[0];