【问题标题】:Detect broken images in webbrowser control document?检测 webbrowser 控制文档中损坏的图像?
【发布时间】:2016-10-07 18:41:39
【问题描述】:

有什么方法可以检测图像是否在网络浏览器控件中未加载/损坏?我正在从这样的文件中加载 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

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

【问题讨论】:

    标签: vb.net webbrowser-control


    【解决方案1】:

    您可以为 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 浏览器中可靠显示的编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2011-03-30
      • 1970-01-01
      • 2012-08-31
      相关资源
      最近更新 更多