A veces puede interesar descargar de internet imágenes u otros recursos a local. Aquí te explico cómo descargar una imagen de una página y mostrarla en un Winform de .NET con la particularidad que en ningún momento guardamos la imagen en disco:
Código para descargar una imagen de una página y mostrarla en un Winform:
private void buttonCargar_Click(object sender, EventArgs e)
{
string[] imagenes = new string[]
{"https://i.ytimg.com/vi/r5zVP6tmvRQ/mqdefault.jpg",
"https://i.ytimg.com/i/ZJ7m7EnCNodqnu5SAtg8eQ/1.jpg",
"https://i.ytimg.com/vi/oY6ZMx_lVks/default.jpg",
"https://i.ytimg.com/vi/REd0FYX8Zno/default.jpg",
"https://i.ytimg.com/vi/ZJxN1swBnhg/default.jpg"};
using (WebClient client = new WebClient())
{
this.imageList.ColorDepth = ColorDepth.Depth32Bit;
this.imageList.ImageSize = new Size(60, 50);
foreach (var imagen in imagenes)
{
Byte[] byteImage = client.DownloadData(imagen);
MemoryStream memoryStream = new MemoryStream(byteImage);
Image image = Image.FromStream(memoryStream);
this.imageList.Images.Add(image);
ListViewItem item = new ListViewItem();
item.ImageIndex = imageList.Images.Count - 1;
item.SubItems.Add(imagen);
this.listView.Items.Add(item);
}
}
}
Del ejemplo tenemos una lista de cinco imágenes a descargar:
- 12-13: indica la profundidad de color y tamaño de la imagen a guardar en imageList
- 17-20: descarga la imagen y la guarda en imageList
- 22-25: añadir la imagen y la url en listView
El resultado es el siguiente:
Podeis obtener las fuentes del ejemplo desde aquí .