Saltar al contenido

¿Cómo puedo convertir la URL de la imagen a system.drawing.image?

Solución:

Puede usar la clase WebClient para descargar la imagen y luego MemoryStream para leerla:

C#

WebClient wc = new WebClient();
byte[] bytes = wc.DownloadData("http://localhost/image.gif");
MemoryStream ms = new MemoryStream(bytes);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);

VB

Dim wc As New WebClient()
Dim bytes As Byte() = wc.DownloadData("http://localhost/image.gif")
Dim ms As New MemoryStream(bytes)
Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(ms)

Las otras respuestas también son correctas, pero duele ver que Webclient y MemoryStream no se eliminan, recomiendo poner su código en un using.

Código de ejemplo:

using (var wc = new WebClient())
{
    using (var imgStream = new MemoryStream(wc.DownloadData(imgUrl)))
    {
        using (var objImage = Image.FromStream(imgStream))
        {
            //do stuff with the image
        }
    }
}

Las importaciones requeridas en la parte superior de su archivo son System.IO, System.Net Y System.Drawing

En VB.net la sintaxis era using wc as WebClient = new WebClient() { etc

Puede usar HttpClient y realizar esta tarea de forma asincrónica con pocas líneas de código.

public async Task<Bitmap> GetImageFromUrl(string url)
    {
        var httpClient = new HttpClient();
        var stream = await httpClient.GetStreamAsync(url);
        return new Bitmap(stream);
    }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *