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:

descargar una imagen de una página y mostrarla en un Winform

Podeis obtener las fuentes del ejemplo desde aquí .