2016-10-07 1 views
0

画像がWebブラウザコントロールに読み込まれていない、または壊れていないかどうかを検出する方法はありますか?私はそうのようなファイルからHTMLをロードしています:ここでWebブラウザ制御文書で壊れた画像を検出しますか?

は一部のHTMLです:Webブラウザー

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> 

そして単純なロードこの私だけかどうかを検出できるようにしたいと思いますかイメージが正しくロードされていません。これは、ページ上のすべての画像に有効です。

答えて

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

はまた、画像にバイト配列に変換して、それが確実にWebブラウザで表示することができる唯一のエンコーディングがあるので、それはRGBでエンコードされていることを確認することができます。

関連する問題