Um amigo me perguntou algo interessante. Justamente por isso, resolvi postar aqui para ajudar outras pessoas: como recuperar em um controle PictureBox do Windows Forms a imagem que está em um local da Web acessível somente via HTTP. Pois bem, o .NET Framework fornece uma classe chamada WebClient que fornece algumas métodos para trabalharmos com envio e recebimento de dados através de uma URI. Para atender a necessidade dele, basta fazermos:
Imports System.IO
Imports System.Net
‘…..
Dim ms As MemoryStream
Try
Dim url As String = “http://www.projetando.net/Images/Logo.gif“
Dim webClient As New WebClient
Dim buffer As Byte() = webClient.DownloadData(url)
ms = New MemoryStream(buffer)
PictureBox1.Image = Image.FromStream(ms)
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not IsNothing(ms) Then
ms.Close()
End If
End Try
Através do método DownloadData recuperarmos a imagem e atribuímos a um buffer. Este, por sua vez, carregamos em um MemoryStream e passamos para o método compartilhado/estático da classe Image que retorna a imagem já para o controle PictureBox.