2016-10-07 3 views
0

이미지가로드되지 않았거나 웹 브라우저 컨트롤에서 깨 졌는지 여부를 감지 할 수있는 방법이 있습니까? 그래서 같은 파일에서 HTML을로드하고 있습니다 :웹 브라우저 제어 문서에서 깨진 이미지를 감지합니까?

webbrowser1.DocumentText = thehtml 

난 그냥 여부를 감지 할 수 있도록하고 싶습니다 웹 브라우저에

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
    <HEAD> 
    <META content="text/html; charset=unicode" http-equiv=Content-Type> 
    <META name=GENERATOR content="MSHTML 11.00.10586.589"> 
    </HEAD> 
    <BODY> 
    <A href="https://web.archive.org/web/20120124023601/http://www.flatfeets.com/wp-content/uploads/2012/01/shoes-for-flat-feet.jpg"> 
     <IMG title="shoes for flat feet" class="alignleft size-medium wp-image-18" alt="" src="https://web.archive.org/web/20120124023601im_/http://www.flatfeets.com/wp-content/uploads/2012/01/shoes-for-flat-feet-300x238.jpg"> 
    </A> 
    </BODY> 
</HTML> 

그리고 간단한 하중이 : 여기

은 일부 HTML입니다 이미지가 제대로로드되지 않았습니다. 이것은 페이지의 모든 이미지에 적용됩니다.

답변

0

html 파일의 각 이미지에 대해 별도의 WebClient 요청을 만든 다음 html 응답 오류 코드가 반환되는지 확인할 수 있습니다.

먼저 HTML을 구문 분석하고 모든 이미지 URL 목록을 작성해야합니다. 나는 HTML Agility Pack과 같은 패키지를 사용하여 이미지 URL을 쉽게 파싱 할 것을 제안합니다. 그런 다음이 코드를 사용하여 잘못된 경로를 식별 할 수 있습니다.

WebClient requester = new WebClient(); 
foreach (string url in urls) 
{ 
    try 
    { 
     Byte[] imageBytes = requester.DownloadData(url);      
    } 
    catch(Exception ex) 
    { 
     //Do something here to indicate that the image file doesn't exist or couldn't be downloaded 
    } 
} 

은 또한 이미지에 바이트 배열을 변환하고 그 신뢰성 웹 브라우저에 표시 할 수있는 유일한 인코딩이기 때문에이 RGB가 인코딩되어 있는지 확인 할 수 있습니다.