2012-04-09 2 views
23

나는 다음과 같은 코드를 가지고 : 나는 Image.에 입력 할 때수 없습니다

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

마지막 줄에를 FromStream가 목록에 없습니다. 내가 무엇을 할 수 있을지?

+0

'발견 된 제안 사항에 문제가 있습니다.' 그게 뭐야? – Oded

+2

질문보기. 문제는 FromStream을 찾을 수 없다는 것입니다. – user896692

+0

'FromStream' 문제가 명확합니다. 확실하지 않은 것은 다른 대답에있는 결함이 무엇인지 (또는 이것이 그 것이 었는지)입니다. – Oded

답변

8

아마도 using System.Drawing;이 필요합니다.

+0

좋아, 나는 잘못 사용했다. 6 분 안에 대답 해줄거야. 감사! – user896692

+0

또한 http 응답을 닫거나 처리해야합니다. 이렇게하지 않으면 http 연결이 열린 상태로 유지되고 동일한 서버에 대한 여러 요청이 실패하게됩니다. – Will

28

더 자세한 예제와 필요한 네임 스페이스.

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

빠른 복사 및 솔루션에 붙여 넣기 만하면되므로 시간을 절약 할 수 있기를 바랍니다.

~ 건배! 당신은 또한 단지 System.Drawing을 사용하는 것만으로는 충분하지 않습니다 추가는 System.Drawing.dll에 대한 참조를 추가 할 필요가, BTW

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

시간이 절약됩니다. 감사합니다 – JDandChips

+0

매력처럼 작동합니다! 'Image image1 = GetImageFromUrl ("http://upload.wikimedia.org/wikipedia/commons/c/cd/Panda_Cub_from_Wolong,_Sichuan,_China.JPG"); // 이미지로 무엇인가하기' – Combine

+0

캐스팅을 피하려면'var httpWebRequest = HttpWebRequest.CreateHttp (url);'를 사용하십시오. – m1kael

11

이 하나를 시도해보십시오.

+1

byteArray 위대한 포인트 !! 나는 실제로 다음 주에 이것을 필요로 할 것이다!! 완벽한 타이밍. – Rogala