2012-04-09 20 views
23

Ho il seguente codice:Impossibile individuare FromStream in classe Immagine

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

Sull'ultima linea quando digito Image., FromStream non è nella lista. Cosa posso fare?

+0

'Ho un problema con i suggerimenti trovati'. Qual è questo problema? – Oded

+2

Leggi la domanda. Il problema è che non è possibile trovare FromStream – user896692

+0

Il problema 'FromStream' è chiaro. Ciò che non era chiaro erano le carenze che c'erano in altre risposte (o che era questo). – Oded

risposta

8

Probabilmente è necessario using System.Drawing;.

+0

Ok, ho sbagliato usando. Accetterò la tua risposta tra 6 minuti. Grazie! – user896692

+0

Inoltre è necessario chiudere/smaltire la risposta http. Non riuscendo a farlo, la connessione http rimane aperta e il tentativo di fare più richieste allo stesso server finirà per fallire. – Will

28

Esempio più dettagliato con l'utilizzo e gli spazi dei nomi necessari.

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); 
       } 
      } 
    } 

Si spera che questo ti consenta di risparmiare un po 'di tempo, dal momento che puoi semplicemente eseguire una rapida copia e incolla nella tua soluzione.

~ Saluti !!

+0

Hai dannatamente ragione, risparmia un po 'di tempo! Grazie – JDandChips

+0

Funziona come un fascino! 'Immagine image1 = GetImageFromUrl (" http://upload.wikimedia.org/wikipedia/commons/c/cd/Panda_Cub_from_Wolong,_Sichuan,_China.JPG "); // fai qualcosa con la tua immagine ' – Combine

+0

Usa' var httpWebRequest = HttpWebRequest.CreateHttp (url); 'per evitare il casting. – m1kael

11

provare questo:

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

Ottimo punto sul byteArray !! Avrò davvero bisogno della prossima settimana !! Tempismo perfetto. – Rogala

2

btw, è inoltre necessario aggiungere il riferimento ai System.drawing.dll, aggiungendo solo utilizzando System.Drawing non è sufficiente.