在浏览器控制文档中检测损坏的图像



是否有任何方法来检测图像是否在浏览器控件中未加载/损坏?我正在从一个文件加载html,像这样:

下面是一些html:

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

然后加载到浏览器中

webbrowser1.DocumentText = thehtml

我只是想能够检测图像是否已正确加载。这应该适用于页面上的所有图像

您可以为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编码,因为这是唯一可以可靠地显示在web浏览器中的编码。

最新更新