2013-09-26 4 views
0

HttpWebRequest을 통해 이미지를 얻으려고하고 imagebox 우승 양식으로 표시하려고합니다. 내가 그 이미지를 볼 수 있습니다 피들러의 이미지 뷰의 탭을 통해 요청을 추적하는 동안 제대로 볼 수 있지만 스트림을 읽는 동안 나는 내가 놓친 게 무엇동적으로 생성 된 이미지를 win 형태로 얻으십시오.

Image img = Image.FromStream(stream). 

Stream was not readable 오류가 발생했습니다? 파고 일부 후

HttpWebRequest req = HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[URL here]"); 
HttpWebResponse response = (HttpWebResponse)req.GetResponse();  
Stream stream = response.GetResponseStream(); 

Image img = Image.FromStream(stream); // ERROR occurs here 

stream.Close(); 
+1

문제는 이미지 형식이 생성되는 것을 보여주지 않기 때문에 그것은, 말을 좀 어렵다. 스트림이 완전히 다운로드되지 않았을 가능성이 있습니다.'response.ContentLength'와'stream.Length'를 비교할 수 있습니까? 'Image.FromStream'은 이미지가 스트림 내에 완전히 존재한다고 예상합니다. Maybee 전체 ContentLength가 다운로드 될 때까지 먼저 memorystream에 복사하려고 시도해야합니다. –

+0

req.ContentLegth = -1 및 스트림 길이 = 'stream.Length' 'System.NotSupportedException'형식의 예외를 던져보고 그래서 내가 Fiddler에서 이미지를 보여 주 때문에 잘못된 것이 확실하지 않습니다. 또한 responseData = myStreamReader.ReadToEnd(); 그것은 올바른 문자열을 받고있는 것 같습니다 – Jim

답변

0

여기 C# gif Image to MemoryStream and back (lose animation) 답을 발견

HttpWebRequest req = HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[URL here]"); 
HttpWebResponse response = (HttpWebResponse)req.GetResponse();  
Stream stream = response.GetResponseStream(); 

MemoryStream memoryStream = new MemoryStream(); 
stream.CopyTo(memoryStream); 
memoryStream.Position = 0; 
stream = memoryStream; 
Image img = Image.FromStream(stream); 

stream.Close(); 
관련 문제