2014-12-16 2 views
1

각 요청마다 을 동적으로 변경하는 이미지를 저장하려고합니다. Wat In에서 동적 이미지를 저장하는 방법

나는

[DllImport("urlmon.dll", CharSet = CharSet.Auto, SetLastError = true)] 
static extern Int32 URLDownloadToFile(Int32 pCaller, string szURL, string szFileName, Int32 dwReserved, Int32 lpfnCB); 
URLDownloadToFile(0, "https://test.reporterImages.php?MAIN_THEME=1", ImageCodePath, 0, 0); 

내가 모든 임시 폴더에 보니 여전히 수 WatIn 및 HttpWebRequest이 (User32.dll을) URLDownloadToFile (새 이미지지고)

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("www.test.com"); 
request.AllowAutoRedirect = false; 
WebResponse response = request.GetResponse(); 

using (Stream stream = response.GetResponseStream()) 
using (FileStream fs = File.OpenWrite(ImageCodePath)) 
{ 
    byte[] bytes = new byte[1024]; 
    int count; 

    while ((count = stream.Read(bytes, 0, bytes.Length)) != 0) 
    { 
     fs.Write(bytes, 0, count); 
    } 
} 

과 (새로운 이미지를 얻기) 시도 이미지를 찾지 못했습니다.

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache),"Content.IE5"); 

서버를 저장할 때마다 서버가 새 이미지를 작성하여 반환합니다. 나는 이미지를 마우스 오른쪽 버튼으로 클릭하고 선택하는 경우 : 같은

저장 사진 ...

을 그것은 사진을 저장합니다. 어떻게 든이 방법을 (마우스 오른쪽 단추로, 그림 저장 ...) IE에서 구현해야합니다 또는 어떻게 든 서버 상호 작용없이 내 HTML 페이지에서 HttpRequest 함께 다운로드하십시오.

는 아무도 내가이 작업을 수행 할 수있는 방법을 알고 있나요?

+2

질문을 다시 읽으면 다른 모든 aswer에 대한 링크를 보내는 것이 더 쉽다는 것을 압니다. 그러나 내가 가지고있는 문제는 제가 동적 인 이미지입니다. 요청을 통해이 이미지를 다운로드 할 수 없기 때문에 새로운/변경된 이미지. –

+0

나는 질문의 시작 부분에서 신발을 벗었다. 귀하의 질문은 곧 재개됩니다. 검토 대기열을 다시 열었으며 이미 4 회의 다시 투표가 있습니다. 그냥 당신이) =) –

답변

2

, 아이디어는 텍스트 인식 (BTW, 이상한 생각)하여 우회하는 브라우저에서 페이지의 현재 보안 문자 이미지를 캡처하는 것입니다. 그리고 이미지 URL을 얻는 데 문제가 없습니다 (항상 동일합니다). 이 경우 API를 사용하여 브라우저 캐시에 액세스 할 수 있습니다. 특히 IE FindFirstUrlCacheEntry/FindNextUrlCacheEntry 응용 프로그램이 WebBrowser를 호스팅하는 경우 도움이 될 수 있습니다.

+0

나는 C#에 대한 좋은 예제를 찾을 수 없지만, 정확히 내가 원하는 것 같다.이 방법에 대한 예제가 있습니까? –

+0

죄송합니다. http : //www.windows-tech.info/1/a94a62466c699e02.php (비정상적인 코드 형식이지만 작동합니다.) 불행히도 http :// /captcha.com/demos/features/captcha-demo.aspx (http get에 대한 추가 사항이있는 http://demos.captcha.com/demos/features/BotDetectCaptcha.ashx), 열거 형 함수는 현금화 된 그림을 찾지 못합니다. 사이트 및 아이콘 소스 URL : 방문한 사용자 : 사용자 @ http : //captcha.com/demos/features/captcha-demo.aspx 소스 URL : 방문한 사용자 : http : //captcha.com/favicon.ico ' – vitalygolub

0

사용 WebClient :

using (var client = new WebClient()) 
{ 
    client.DownloadFile("http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3c6263c3453b", "so-sprites.png"); 
} 

당신은 다운로드 할과 직접적으로 이미지에 여전히 두 개의 연속 된 요청을 웹 클라이언트를 사용할 수있는 img을 포함 html 페이지에 URL을 제공하는 경우. 첫 번째는 이미지 원본을 페이지 원본 (URL이 정적 인 경우 필요 없음)에서 스크랩하고 두 번째 이미지를 실제로 다운로드하는 것입니다.

편집 :

죄송합니다. 처음부터 명확하지 않았습니다. 따라서 앱에서 브라우저를 호스팅하면 실제 이미지가 표시됩니다. 보고있는 이미지를 다운로드하려고합니다. 물론 다른 이미지가 생성되기 때문에 다른 요청을하는 것은 효과가 없습니다.

해결 방법은 사용하는 웹 브라우저 컨트롤에 따라 다릅니다.
WebBrowser (System.Windows.Forms)의 경우 IHTMLDocument2을 사용할 수 있습니다. 여기에 예를 참조하십시오

내가 알고있는 것처럼

Saving image shown in web browser

+0

여전히 브라우저에서 새 이미지를 받고,하지만 하나의 이미지를 참조 클라이언트를 알아.다운로드 파일이 변경된 이미지를 저장합니다. –

+0

여기에 이미지 https://reporter.gate2shop.com/lib/captcha/CaptchaSecurityImages.php?MAIN_THEME=1의 링크가 있습니다. 클릭하면 매번 변경되며 request 및 client.download는 매번 제공합니다. 새 이미지, 나는 첫 번째 요청에서 볼 수있는 것과 동일한 이미지를 다운로드 할 수 없습니다. –

+0

Yae 저는 WatIn (브라우저 에뮬레이터)을 사용했습니다.하지만 Watun에서는 작동하지 않습니다. –