2012-04-09 10 views
23

Tengo el siguiente código:No se puede localizar en la clase FromStream imagen

Image tmpimg = null; 
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); 
HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
Stream stream = httpWebReponse.GetResponseStream(); 
return Image.FromStream(stream); 

En la última línea cuando escribo en Image., FromStream no está en la lista. ¿Que puedo hacer?

+0

'Tengo un problema con las sugerencias encontradas'. ¿Cuál es ese problema? – Oded

+2

Lee la pregunta. El problema es que FromStream no se puede encontrar – user896692

+0

El problema 'FromStream' es claro. Lo que no estaba claro era qué deficiencias había en otras respuestas (o que esto era). – Oded

Respuesta

8

Probablemente necesite using System.Drawing;.

+0

Ok, tuve el uso incorrecto. Aceptaré tu respuesta en 6 minutos. ¡Gracias! – user896692

+0

También debe cerrar/eliminar la respuesta http. Si no lo hace, deja la conexión http abierta e intenta hacer múltiples solicitudes al mismo servidor que terminará fallando. – Will

28

Ejemplo más detallado con el uso y los espacios de nombres necesarios.

using System.Net; 
using System.IO; 
using System.Drawing; 

public static Image GetImageFromUrl(string url) 
    { 
     HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); 

      using (HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse()) 
      { 
       using (Stream stream = httpWebReponse.GetResponseStream()) 
       { 
        return Image.FromStream(stream); 
       } 
      } 
    } 

Espero que esto le ahorre algo de tiempo, ya que puede hacer una copia rápida y pegarla en su solución.

~ ¡¡¡Salud !!

+0

¡Tiene razón, ahorra tiempo! Gracias – JDandChips

+0

¡Funciona como un encanto! 'Imagen image1 = GetImageFromUrl (" http://upload.wikimedia.org/wikipedia/commons/c/cd/Panda_Cub_from_Wolong,_Sichuan,_China.JPG "); // hacer algo con su imagen' – Combine

+0

Use 'var httpWebRequest = HttpWebRequest.CreateHttp (url);' para evitar la conversión. – m1kael

11

prueba este:

using System.Drawing; 
    using System.IO; 
    using System.Net; 

    public static Image GetImageFromUrl(string url) 
    { 
     using (var webClient = new WebClient()) 
     { 
      return ByteArrayToImage(webClient.DownloadData(url)); 
     } 
    } 

    public static Image ByteArrayToImage(byte[] fileBytes) 
    { 
     using (var stream = new MemoryStream(fileBytes)) 
     { 
      return Image.FromStream(stream); 
     } 
    } 
+1

¡Gran punto en el byteArray! De hecho, voy a necesitar esto la próxima semana. Tiempo perfecto. – Rogala

2

por cierto, también es necesario añadir una referencia a System.Drawing.dll, agregando solamente usando System.Drawing no es suficiente.

Cuestiones relacionadas