Я объявляю список для хранения 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<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);
}
Но когда запуск программы в «»
эта линия будет произошла ошибка: WebException.
Я также попробую List<Image>
и imageList
, чтобы сохранить изображение, после чего снова возникла ошибка.
У кого-нибудь есть идея, как решить эту проблему?
Вы распорядились поток, а затем вы пытаетесь для получения изображения из потока. Не удаляйте поток или вместо этого храните 'Image' в списке и используйте его, когда вам нужно. –
Вы не должны кэшировать поток, вы должны загрузить растровое изображение непосредственно в список. –